1 00:00:01,001 --> 00:00:03,001 So I was looking for a thesis topic. 2 00:00:05,001 --> 00:00:07,001 And that's sometimes a hard thing. 3 00:00:07,001 --> 00:00:10,001 And that's sometimes why people take so long to get their graduate school, to 4 00:00:10,001 --> 00:00:13,000 find what are you going to do? 5 00:00:13,000 --> 00:00:15,000 You only do that on thesis, and it's kind of a big deal. 6 00:00:16,000 --> 00:00:18,001 And part of the problems with finding a thesis topic is that I was being 7 00:00:18,001 --> 00:00:23,001 distracted by all sorts of things, including ham radio, which I was getting more 8 00:00:23,001 --> 00:00:25,001 and more involved in the ham radio club. 9 00:00:28,000 --> 00:00:31,000 And what they were doing was hidden transmitter hunting. 10 00:00:31,000 --> 00:00:35,000 And I was running around wasting time looking for a hidden transmitter that 11 00:00:35,000 --> 00:00:36,001 kept getting hidden in the Boston area. 12 00:00:39,000 --> 00:00:42,000 And I was also getting distracted by other fantasies. 13 00:00:43,000 --> 00:00:46,001 I was having technical fantasies to build things and do neat things. 14 00:00:47,000 --> 00:00:50,001 And I was sort of in a computer science, more oriented graduate program. 15 00:00:51,000 --> 00:00:54,000 And one of the things that always frustrated me was the fact that I had to walk 16 00:00:54,000 --> 00:00:57,000 across campus to go back to freshman year. 17 00:00:57,000 --> 00:00:59,000 I had a 300-bit per second dial-up in my room. 18 00:01:00,000 --> 00:01:04,000 I'd have to walk across campus to get the real useful connection to the computer 19 00:01:04,000 --> 00:01:08,000 in the net, which was a 9,600-bit per second 2480 VT100. 20 00:01:09,000 --> 00:01:11,000 But by the time I was in graduate school, I had the 9,600 21 00:01:11,000 --> 00:01:12,001 -bit per second modem in my room. 22 00:01:13,000 --> 00:01:16,000 But it wasn't useful because I'd walk across campus. 23 00:01:16,001 --> 00:01:20,001 And by then I had an office where I had a microvax2 running x-window system. 24 00:01:20,001 --> 00:01:21,001 And it was on the net. 25 00:01:22,001 --> 00:01:25,001 And on 10-megabit Ethernet, well hooked to the internet. 26 00:01:25,001 --> 00:01:28,001 And frustration, why can't I have the net at home? 27 00:01:29,000 --> 00:01:31,001 And so I'd always been scheming on how to do this. 28 00:01:31,001 --> 00:01:35,001 Actually, one of the buildings I lived in was the building which had the 10 29 00:01:35,001 --> 00:01:40,001 -megabit microwave for the near net, which was the Boston area internet. 30 00:01:41,000 --> 00:01:42,001 And actually, I lived on the 8th floor. 31 00:01:43,000 --> 00:01:45,000 And up on the 26th floor was all the equipment. 32 00:01:45,000 --> 00:01:46,000 And they had routers and everything. 33 00:01:46,000 --> 00:01:52,000 And there was actually fiber, only six feet from my room, where it was the trunk. 34 00:01:52,001 --> 00:01:52,001 And it's like. 35 00:01:57,000 --> 00:02:00,000 And I still had to dial in with my 8600-bit per second. 36 00:02:00,000 --> 00:02:01,001 Frustration, frustration. 37 00:02:01,001 --> 00:02:04,001 This is a frustration I had, I think, a better part of a decade. 38 00:02:05,001 --> 00:02:06,001 And so then I moved. 39 00:02:07,000 --> 00:02:07,001 And I looked. 40 00:02:07,001 --> 00:02:11,001 And the building they had my office in, I could see 41 00:02:11,001 --> 00:02:13,000 many windows in that building. 42 00:02:13,000 --> 00:02:16,001 Not my own, but I could see many windows in that building out my window. 43 00:02:17,001 --> 00:02:19,001 I don't remember the exact distance. 44 00:02:19,001 --> 00:02:20,001 There's one or two kilometers. 45 00:02:21,001 --> 00:02:22,001 I ought to be able to do something. 46 00:02:22,001 --> 00:02:24,000 And I started thinking free space optical 47 00:02:24,000 --> 00:02:26,000 links, which actually there are a few of those around. 48 00:02:26,000 --> 00:02:28,000 But of course, they were very expensive 49 00:02:28,000 --> 00:02:29,001 for a graduate student budget in those days. 50 00:02:29,001 --> 00:02:31,000 So I started having other fantasies. 51 00:02:31,000 --> 00:02:33,000 Like maybe I could build a pair of radios. 52 00:02:33,000 --> 00:02:35,001 And actually, optics has a problem that you have to get lenses. 53 00:02:35,001 --> 00:02:36,001 And you have to line it up. 54 00:02:36,001 --> 00:02:37,000 And it doesn't work when it rains. 55 00:02:38,000 --> 00:02:39,000 So I started thinking about radio. 56 00:02:39,000 --> 00:02:41,000 The problem with radio is, well, you need a license. 57 00:02:41,000 --> 00:02:42,000 Well, I already have a hand license. 58 00:02:42,000 --> 00:02:47,001 But there's this content problem that you can't just go read all your email, 59 00:02:48,000 --> 00:02:49,001 because you never know what anybody has sent you. 60 00:02:50,000 --> 00:02:51,001 So you can't take responsibility for it. 61 00:02:52,000 --> 00:02:53,000 So I thought, well, I need something. 62 00:02:53,000 --> 00:02:56,000 And besides, I sort of wanted to be able to let my friends do this. 63 00:02:56,001 --> 00:02:57,001 And most of them didn't have licenses. 64 00:02:57,001 --> 00:03:00,000 And so what I wanted was a loophole. 65 00:03:00,000 --> 00:03:07,000 So I actually went off and I sat down in the small 66 00:03:07,000 --> 00:03:09,001 law library at the business school at MIT. 67 00:03:10,000 --> 00:03:16,001 And I actually sat down and I started reading 47 CFR in general, and particularly 68 00:03:16,001 --> 00:03:21,000 47 CFR 15, which is the place I expected I'd find a loophole. 69 00:03:21,000 --> 00:03:22,001 That's what people call 15. 70 00:03:22,001 --> 00:03:25,001 This is sort of what a lawyer's would call part 10. 71 00:03:26,000 --> 00:03:30,001 This is volume 47 of the Code of Federal Regulations, which are the regulations 72 00:03:30,001 --> 00:03:32,001 that are written by the bureaucrats, not the laws that are made 73 00:03:32,001 --> 00:03:34,001 by the legislative process. 74 00:03:35,001 --> 00:03:40,000 Anyway, this is with the part 15 unlicensed authorization that I discovered. 75 00:03:40,001 --> 00:03:42,000 And this was probably late in 91. 76 00:03:44,000 --> 00:03:46,001 I'm reading along, looking at each of the things you can do in part 15. 77 00:03:46,001 --> 00:03:51,000 And I'm like, wow, you can do a watt as long as your 78 00:03:51,000 --> 00:03:52,001 antenna gain is at most 6 dVI. 79 00:03:53,000 --> 00:03:58,001 So sort of an arp of 4 watts in three different bands, the widest of which is 80 00:03:58,001 --> 00:04:00,000 125 megahertz wide. 81 00:04:01,000 --> 00:04:06,000 But this regulation required that you use spread spectrum with at least 10 dB 82 00:04:06,000 --> 00:04:07,001 of processing gain in the receiver. 83 00:04:10,000 --> 00:04:14,000 Most people are ignoring this requirement that you actually demonstrate the 84 00:04:14,000 --> 00:04:16,001 system of 10 dB of processing gain in the receiver these days. 85 00:04:17,001 --> 00:04:21,000 But anyway, sitting there reading the FCC regulations is 86 00:04:21,000 --> 00:04:23,001 like, what's the spread spectrum? 87 00:04:24,000 --> 00:04:25,001 And what's the processing gain? 88 00:04:26,001 --> 00:04:31,001 And I had sort of gone through the computer science curriculum, so I hadn't had 89 00:04:31,001 --> 00:04:34,001 all the modulation and that sort of theory. 90 00:04:35,000 --> 00:04:38,001 So that sent me off studying, looking in the library. 91 00:04:40,000 --> 00:04:42,000 And I started thinking, oh, yeah, that's something I could do. 92 00:04:42,000 --> 00:04:47,000 And I started having fantasies of building up, here's me. 93 00:04:47,001 --> 00:04:48,001 Here's the building I want to get to. 94 00:04:51,000 --> 00:04:51,001 I want that. 95 00:04:55,001 --> 00:04:57,000 And that'd be neat. 96 00:04:57,000 --> 00:05:01,000 And of course, any time you go to the trouble of spinning some boards and 97 00:05:01,000 --> 00:05:05,001 populating them, you don't build just two boards. 98 00:05:06,000 --> 00:05:10,000 You actually get a dozen boards made and maybe a prototype. 99 00:05:10,001 --> 00:05:12,000 And then you figure out how to really make them. 100 00:05:12,000 --> 00:05:13,000 And then you sell them to your friends. 101 00:05:14,000 --> 00:05:15,000 And I had all these friends in grad school. 102 00:05:15,000 --> 00:05:17,001 And I thought, they're all over the place. 103 00:05:17,001 --> 00:05:19,000 And they're all going to want this, too. 104 00:05:19,001 --> 00:05:21,000 They're just like me, sort of. 105 00:05:21,001 --> 00:05:25,000 And I started thinking, yeah, this would be really neat. 106 00:05:28,001 --> 00:05:33,000 But the internet wasn't just a, by this point, the internet was not just 107 00:05:33,000 --> 00:05:37,001 something that all the computer science students were addicted to. 108 00:05:37,001 --> 00:05:41,000 Even the biology graduate students were addicted to the internet. 109 00:05:41,000 --> 00:05:43,000 They couldn't go a day without reading their email. 110 00:05:45,000 --> 00:05:47,001 And they probably wanted it home, as well. 111 00:05:47,001 --> 00:05:49,000 This is sort of before the web. 112 00:05:50,001 --> 00:05:52,000 Or the web was just getting started then, anyway. 113 00:05:53,000 --> 00:05:56,001 So I realized it's not going to necessarily just be this. 114 00:05:58,000 --> 00:06:03,000 It might be other groups around the campus or around the area 115 00:06:03,000 --> 00:06:04,001 might want to do this, as well. 116 00:06:04,001 --> 00:06:06,000 And it's like, oh, that's interesting. 117 00:06:07,001 --> 00:06:10,000 Well, maybe their community looks like that. 118 00:06:10,000 --> 00:06:12,001 There's this little network of me and my friends here. 119 00:06:12,001 --> 00:06:14,000 But maybe everybody else distributed and 120 00:06:14,000 --> 00:06:16,000 tried to use the same things to get here. 121 00:06:16,000 --> 00:06:21,000 And I'm having fantasies of selling these things as kits or maybe even a product. 122 00:06:22,001 --> 00:06:23,000 Full of fantasy. 123 00:06:23,001 --> 00:06:28,000 But then I spent a lot of time just thinking about this sort of stuff. 124 00:06:28,000 --> 00:06:32,001 And I realized that it's probably not right to have a hub system, but to actually 125 00:06:32,001 --> 00:06:34,001 just view it as you've got all these stations. 126 00:06:35,000 --> 00:06:38,000 And what you really want to do is get them all connected together in a network. 127 00:06:38,001 --> 00:06:40,001 And I was also thinking at the time. 128 00:06:40,001 --> 00:06:46,000 And I realized that you need to not hop over intermediate stations 129 00:06:46,000 --> 00:06:47,001 or the system cannot scale. 130 00:06:48,001 --> 00:06:52,001 And that was sort of the beginning of me thinking about how can this scale. 131 00:06:52,001 --> 00:06:56,000 And then I actually realized that, oh, it's not just the biology graduate 132 00:06:56,000 --> 00:06:57,001 students who want to get on the internet as well. 133 00:06:58,000 --> 00:07:00,000 It's also the entire population. 134 00:07:00,001 --> 00:07:06,001 At that point, I think I sort of realized that the internet is something that 135 00:07:06,001 --> 00:07:10,000 eventually the whole population is going to be on one way or another. 136 00:07:12,000 --> 00:07:14,000 And being behind a modem is not really on the 137 00:07:14,000 --> 00:07:17,000 net, at least from my point of view. 138 00:07:17,000 --> 00:07:19,001 So I started thinking about, well, how can this scale? 139 00:07:20,000 --> 00:07:23,001 To maybe 100 stations or maybe 1,000 stations. 140 00:07:24,001 --> 00:07:25,001 And then I thought, oh, no. 141 00:07:26,000 --> 00:07:29,000 Well, if actually how many houses are there in the Metro Boston area? 142 00:07:30,001 --> 00:07:31,001 Or Metro Beijing? 143 00:07:33,000 --> 00:07:34,000 Or whatever. 144 00:07:34,000 --> 00:07:39,001 And I was thinking about, I was reading packet radio research reading propagation 145 00:07:39,001 --> 00:07:43,001 stuff in the library, trying to understand, well, what is the propagation model? 146 00:07:45,000 --> 00:07:47,000 And how can you design a packet radio stuff? 147 00:07:47,000 --> 00:07:50,000 And by this time, I'm reading some of the real packet radio research that's been 148 00:07:50,000 --> 00:07:52,000 funded by DARPA starting around 1970. 149 00:07:52,000 --> 00:07:54,001 There's about 25 years worth of literature in the library. 150 00:07:55,000 --> 00:07:56,001 You can actually spend the time to go look through it all. 151 00:07:57,001 --> 00:07:59,000 I was trying to understand it. 152 00:08:00,001 --> 00:08:03,000 A lot of the packet radio research model, their model 153 00:08:03,000 --> 00:08:05,000 is done by computer scientists. 154 00:08:05,000 --> 00:08:10,001 And their model of a radio system is a transmitter and a receiver. 155 00:08:10,001 --> 00:08:11,001 And it has some range. 156 00:08:12,000 --> 00:08:13,001 And if you're inside that range, it works. 157 00:08:13,001 --> 00:08:15,000 And if you're outside that range, it doesn't work. 158 00:08:16,001 --> 00:08:19,000 And if there's another station transmitting, well, if you're inside 159 00:08:19,000 --> 00:08:20,001 his range, then he interferes with you. 160 00:08:20,001 --> 00:08:23,000 And if you're outside his range, then he doesn't interfere with you. 161 00:08:23,000 --> 00:08:26,000 And sort of a very determined transmission radius. 162 00:08:27,000 --> 00:08:30,001 And you can actually go find papers talking about, well, what is the right 163 00:08:30,001 --> 00:08:32,001 transmission range to set your transmitter to? 164 00:08:33,001 --> 00:08:35,001 To let the packet radio scale. 165 00:08:37,000 --> 00:08:39,001 And this wasn't making too much sense to me, because I was out 166 00:08:39,001 --> 00:08:41,000 hidden transmitter hunting at the time. 167 00:08:43,000 --> 00:08:45,000 And Radio Prop Free Space is 1 over r squared. 168 00:08:45,001 --> 00:08:47,001 And if you go behind a hill, it's different stuff. 169 00:08:49,000 --> 00:08:51,001 Some of the more serious land mobile propagation stuff 170 00:08:51,001 --> 00:08:53,000 talked about 1 over r to the fourth. 171 00:08:55,000 --> 00:08:59,001 And I'm just now starting to understand where some of these numbers come from. 172 00:08:59,001 --> 00:09:06,000 But then actually, about this time, I went to Albuquerque New Mexico for some of 173 00:09:06,000 --> 00:09:07,001 my sisters-in-law's big Thanksgiving gathering. 174 00:09:08,000 --> 00:09:10,000 And I was visiting them for Thanksgiving that year. 175 00:09:10,001 --> 00:09:14,000 And I arrived in Albuquerque late at night, was shown up to an upstairs room, 176 00:09:14,000 --> 00:09:17,000 looked out the window the next morning when I woke up. 177 00:09:17,000 --> 00:09:20,001 And I believed I could see every rooftop in 178 00:09:20,001 --> 00:09:22,001 Albuquerque, New Mexico, from where I was. 179 00:09:23,001 --> 00:09:27,001 And it occurred to me that, at least in my naive understanding at the time, that 180 00:09:27,001 --> 00:09:32,000 it would probably be effectively free-space path loss between all pairs of 181 00:09:32,000 --> 00:09:34,000 rooftops in that area. 182 00:09:34,001 --> 00:09:39,000 And that that is the most challenging to scaling, is if it is free-space. 183 00:09:39,001 --> 00:09:42,000 Because free-space is 1 over r squared. 184 00:09:42,000 --> 00:09:45,000 And most of the other models indicate that you get more attenuation than that. 185 00:09:45,001 --> 00:09:51,001 And I realized that if I can figure out how to make it scale in the free-space 186 00:09:51,001 --> 00:09:54,001 case, then it can scale in any other propagation model that anybody 187 00:09:54,001 --> 00:09:56,001 thinks is reasonable. 188 00:09:57,000 --> 00:10:01,000 The free-space propagation is the hard case for scaling. 189 00:10:01,001 --> 00:10:03,000 So that's the one to solve. 190 00:10:05,001 --> 00:10:07,000 So at that point, I was off. 191 00:10:07,000 --> 00:10:09,000 And I was actually thinking, well, how about a million 192 00:10:09,000 --> 00:10:10,001 stations in a metropolitan area? 193 00:10:13,000 --> 00:10:18,000 And packet radio networks, all the stations are the same. 194 00:10:18,000 --> 00:10:21,000 It's not like a cellular system where you've got a base station in the thing. 195 00:10:21,000 --> 00:10:25,001 And actually, I don't really, I mean, I'm thinking of a fixed packet radio 196 00:10:25,001 --> 00:10:27,000 network where all the stations are fixed. 197 00:10:28,000 --> 00:10:29,001 Maybe I can figure out how to add mobility later. 198 00:10:29,001 --> 00:10:30,001 But I didn't really care about that. 199 00:10:30,001 --> 00:10:32,000 I just wanted to get the internet out to the houses. 200 00:10:33,000 --> 00:10:36,000 And so by base stations, I mean no cell sites. 201 00:10:37,000 --> 00:10:37,001 They're sort of all base stations. 202 00:10:38,000 --> 00:10:38,001 They're all peers. 203 00:10:38,001 --> 00:10:39,000 They're all the same. 204 00:10:39,000 --> 00:10:40,001 They form this mesh-not work. 205 00:10:41,000 --> 00:10:42,001 It needs to be multi-hop routing. 206 00:10:43,000 --> 00:10:46,000 I had some intuition to that at the time that I really believed in. 207 00:10:46,001 --> 00:10:48,000 And I want a single-channel system. 208 00:10:49,001 --> 00:10:52,000 These stations are just people by them. 209 00:10:52,000 --> 00:10:53,000 They put them on top of their house. 210 00:10:54,001 --> 00:10:56,000 And they don't have to point them. 211 00:10:56,000 --> 00:10:59,001 They don't have to think about whatever that should just work. 212 00:11:00,000 --> 00:11:01,001 So I was thinking on the antennas. 213 00:11:06,000 --> 00:11:12,001 And I wanted to make it scale to millions of stations in the metro area while 214 00:11:12,001 --> 00:11:14,001 maintaining reasonable per user 215 00:11:14,001 --> 00:11:17,000 performance, whatever those traffic they're doing. 216 00:11:17,000 --> 00:11:19,001 And I don't really know what the traffic load on this net's going to be. 217 00:11:19,001 --> 00:11:21,000 I don't know who's going to talk to who. 218 00:11:21,001 --> 00:11:23,000 So it needs to be sort of a general purpose net. 219 00:11:24,001 --> 00:11:27,000 Kind of like when you install an ethernet, you usually don't worry 220 00:11:27,000 --> 00:11:28,001 about what the traffic matrix is going to be. 221 00:11:28,001 --> 00:11:29,001 You just kind of string it everywhere. 222 00:11:30,000 --> 00:11:32,000 And if it gets too busy, then you start thinking about it. 223 00:11:34,001 --> 00:11:38,001 So the real concern is my original goal was just to get my one link. 224 00:11:40,000 --> 00:11:42,001 But if there were millions of these, is mine still going to work? 225 00:11:44,000 --> 00:11:47,000 Maybe actually there's some point to where it falls over as you scale it. 226 00:11:47,001 --> 00:11:49,001 And my question is, is there a way to design these 227 00:11:49,001 --> 00:11:51,001 things so that it all still works? 228 00:11:52,000 --> 00:11:57,001 It works with my two, and then it works after a million more have been sold. 229 00:12:02,000 --> 00:12:03,001 So this is all thinking. 230 00:12:04,001 --> 00:12:08,000 At some point along the way, I realized, oh, this is my thesis topic. 231 00:12:08,000 --> 00:12:11,001 So I actually wound up talking a committee into actually 232 00:12:11,001 --> 00:12:13,000 letting me do this as a thesis topic. 233 00:12:15,000 --> 00:12:15,001 What? 234 00:12:16,000 --> 00:12:16,001 The ECS department? 235 00:12:17,000 --> 00:12:19,001 Well, it's an ECS department. 236 00:12:19,001 --> 00:12:25,001 [...] and actually, if you think about who is computer science faculty, 237 00:12:26,000 --> 00:12:29,001 well, they were double the graduate students because there was no computer 238 00:12:29,001 --> 00:12:31,001 science when they went through grad school. 239 00:12:32,000 --> 00:12:33,000 They kind of remember this stuff. 240 00:12:33,001 --> 00:12:35,001 I taught my particular supervisor didn't know much about 241 00:12:35,001 --> 00:12:37,000 radio except the courses he'd taken. 242 00:12:38,000 --> 00:12:42,000 And I wound up teaching him a lot, which is kind of neat about radios. 243 00:12:42,000 --> 00:12:43,001 He knows a lot about systems. 244 00:12:44,000 --> 00:12:49,001 Anyway, so I think there are two important things that come out of the thesis. 245 00:12:49,001 --> 00:12:53,000 And this is the most important thing. 246 00:12:53,001 --> 00:12:55,001 And actually, I'm going to be talking about this pretty soon here. 247 00:12:57,000 --> 00:13:04,000 And then I've got a way of scheduling the packets so that you can 248 00:13:04,000 --> 00:13:07,001 send the packet to your nearby neighbor without having 249 00:13:07,001 --> 00:13:09,000 to worry about whether or not it got there. 250 00:13:09,001 --> 00:13:13,001 So it'd be nice if you're going across a thousand station network per hop 251 00:13:13,001 --> 00:13:15,001 acknowledgment is going to be a lot of stuff. 252 00:13:15,001 --> 00:13:17,001 It'd be nice if you could just use end-to-end 253 00:13:17,001 --> 00:13:19,001 acknowledgments across the whole network. 254 00:13:19,001 --> 00:13:20,001 Can you say those words I keep? 255 00:13:22,001 --> 00:13:28,001 Oh, this says understanding of noise growth of a large system and decentralized 256 00:13:28,001 --> 00:13:30,001 collision-free channel access method. 257 00:13:33,001 --> 00:13:35,001 So this understanding of the noise growth of a large 258 00:13:35,001 --> 00:13:37,001 system that I think is the most important thing. 259 00:13:38,000 --> 00:13:41,000 I've come up with a particular way of doing the decentralized collision 260 00:13:41,000 --> 00:13:42,001 -free channel access. 261 00:13:42,001 --> 00:13:46,001 And that MIT filed for a patent on. 262 00:13:48,000 --> 00:13:50,000 And I have not yet figured out how to invent around it. 263 00:13:50,000 --> 00:13:54,001 But actually, I think math paper yesterday suggests to me 264 00:13:54,001 --> 00:13:56,000 that actually there may be a way. 265 00:13:59,000 --> 00:14:00,000 Anyway, onward forward. 266 00:14:00,001 --> 00:14:02,000 OK, now how to understand. 267 00:14:02,001 --> 00:14:03,000 Oh, question. 268 00:14:03,001 --> 00:14:04,000 You mentioned that. 269 00:14:04,000 --> 00:14:07,000 Did you indicate to MIT that the graduate student at MIT shared the patents? 270 00:14:08,000 --> 00:14:11,000 MIT owns the rights to the patents and all 271 00:14:11,000 --> 00:14:12,001 decisions about licensing and everything. 272 00:14:12,001 --> 00:14:17,000 And so some sense I have no control that if they ever actually do manage to make 273 00:14:17,000 --> 00:14:20,001 money off of it, which is not likely in general. 274 00:14:21,000 --> 00:14:23,001 Only one in 10 patents ever gets a license. 275 00:14:26,001 --> 00:14:29,001 They chose to go ahead and do it because they thought it was 276 00:14:29,001 --> 00:14:31,000 worth the gamble given what it was. 277 00:14:31,000 --> 00:14:36,000 But I think I get some 10% or 15% of whatever license fees they bring in. 278 00:14:38,000 --> 00:14:41,000 I'm not ever expecting that to produce any money. 279 00:14:42,001 --> 00:14:44,000 Patents aren't really about producing money. 280 00:14:44,001 --> 00:14:49,000 They're this legal game that companies play chicken game. 281 00:14:49,001 --> 00:14:53,000 Companies play chicken with each other about perhaps going into 282 00:14:53,000 --> 00:14:54,001 court and whatever. 283 00:14:55,000 --> 00:14:56,000 But it was kind of neat. 284 00:14:57,000 --> 00:15:00,000 I got to see what it's like to apply for a patent. 285 00:15:00,000 --> 00:15:01,001 I mean, they hired a patent attorney and stuff. 286 00:15:02,000 --> 00:15:04,000 I didn't really want to- [...] a name. 287 00:15:04,001 --> 00:15:05,000 Yeah. 288 00:15:06,000 --> 00:15:07,001 Yeah, it was written by the lawyer. 289 00:15:07,001 --> 00:15:09,001 The lawyer read my thesis and understood it. 290 00:15:09,001 --> 00:15:10,001 I was very impressed. 291 00:15:11,001 --> 00:15:14,000 He had been a double e undergrad before he went to law school. 292 00:15:18,001 --> 00:15:19,000 So OK. 293 00:15:20,000 --> 00:15:27,000 My first concern is what happens as the thing 294 00:15:27,000 --> 00:15:30,000 scales to the radio channel if these are all one single channel system. 295 00:15:34,000 --> 00:15:34,001 I'm here. 296 00:15:35,000 --> 00:15:37,000 I've got a nearby neighbor that's trying to send me something. 297 00:15:37,001 --> 00:15:38,001 There's some signal there. 298 00:15:39,001 --> 00:15:43,001 And there's a whole bunch of other stations out there using the same channel. 299 00:15:45,000 --> 00:15:45,001 Does it work? 300 00:15:49,001 --> 00:15:56,001 And actually, I was trying to place 301 00:15:56,001 --> 00:15:59,000 this in the context of the packet radio literature. 302 00:15:59,000 --> 00:16:04,000 If I'm talking to a computer scientist who's read some of this packet radio 303 00:16:04,000 --> 00:16:10,000 literature and it's published, I need to explain what I'm doing that's different. 304 00:16:10,001 --> 00:16:13,001 And in those systems, the signal is something that's either there or not. 305 00:16:14,001 --> 00:16:15,001 And transmitters have a range. 306 00:16:16,000 --> 00:16:19,000 And they design on this transmission radius thing. 307 00:16:19,000 --> 00:16:23,000 So just in general, you can look at any of these models 308 00:16:23,000 --> 00:16:25,000 for what a packet radio network is like. 309 00:16:25,001 --> 00:16:30,001 They've got some idea of what is a signal and what is propagation and what 310 00:16:30,001 --> 00:16:36,000 criteria are there on successfully capturing a packet that's been sent to you. 311 00:16:36,001 --> 00:16:40,000 And other systems have other answers to those three questions. 312 00:16:40,000 --> 00:16:45,001 But in my case, the signal at the receiver has a power level, which 313 00:16:45,001 --> 00:16:47,000 is a function of a whole bunch of stuff. 314 00:16:47,001 --> 00:16:48,001 It's a continuum. 315 00:16:49,000 --> 00:16:54,001 And radio signals propagate to the end of the universe with some free space path 316 00:16:54,001 --> 00:16:58,000 loss or perhaps the attenuating media in between or whatever. 317 00:16:59,000 --> 00:17:01,000 And by propagation, there's an attenuation. 318 00:17:02,001 --> 00:17:05,001 It's the model I use in all the work I did. 319 00:17:06,001 --> 00:17:13,000 Actually, in general, if you have two antennas in the world and you assume that 320 00:17:13,000 --> 00:17:19,001 the world between the antennas is linear and time invariant, then 321 00:17:20,001 --> 00:17:25,000 with those two assumptions, then the most general model of what's between 322 00:17:25,000 --> 00:17:26,001 the antennas is an impulse response. 323 00:17:27,001 --> 00:17:30,001 That captures all of the multipath between those antennas. 324 00:17:31,001 --> 00:17:34,001 And then you could do the Fourier transform of that and understand what 325 00:17:34,001 --> 00:17:36,001 is the filter between the two antennas. 326 00:17:37,000 --> 00:17:39,001 And it's one with a lot of attenuation and everything. 327 00:17:40,001 --> 00:17:44,000 And what I did is I dropped the impulse response and said, well, I'm going to 328 00:17:44,000 --> 00:17:48,000 ignore the multipath for now because in a multipath, you can design 329 00:17:48,000 --> 00:17:49,001 modulation schemes around that. 330 00:17:52,001 --> 00:17:57,001 And any problem that the multipath gives you is probably just going to be you can 331 00:17:57,001 --> 00:17:59,000 design around it. 332 00:17:59,000 --> 00:18:01,000 I wanted to wave my hands here and get beyond that. 333 00:18:01,000 --> 00:18:03,000 But you can design around that. 334 00:18:03,000 --> 00:18:06,001 And it affects you by some small factor in how many bits you can get through. 335 00:18:08,000 --> 00:18:13,001 So for the purposes of understanding noise growth system, between every 336 00:18:13,001 --> 00:18:15,000 pair of stations, there's some attenuation. 337 00:18:15,000 --> 00:18:18,000 It's the path loss between those two things. 338 00:18:18,000 --> 00:18:24,001 And it's actually I think of this as a path gain, 339 00:18:25,001 --> 00:18:27,001 which is 1 over the path loss. 340 00:18:29,000 --> 00:18:30,000 So it's a small number. 341 00:18:30,000 --> 00:18:34,001 So you take the power at the station you're transmitting ascending. 342 00:18:36,000 --> 00:18:42,001 And this term here is this is the power at station k. 343 00:18:43,000 --> 00:18:47,001 And this term here is the attenuation between the two stations. 344 00:18:48,000 --> 00:18:49,001 It's probably symmetric. 345 00:18:51,000 --> 00:18:53,001 And so you multiply that times the power they're sending. 346 00:18:53,001 --> 00:18:56,000 And that tells you how much signal you're getting from that station. 347 00:18:56,001 --> 00:19:01,000 And then for all the other stations, in fact, this term here is to sum up the 348 00:19:01,000 --> 00:19:07,000 power that everybody else is transmitting times how much 349 00:19:07,000 --> 00:19:09,000 attenuation you're getting from them. 350 00:19:09,001 --> 00:19:14,000 And if I just did this over this, it would be signal to signal plus noise 351 00:19:14,000 --> 00:19:15,001 ratio in power. 352 00:19:17,000 --> 00:19:21,001 And if I subtract out this term, then I get signal to noise. 353 00:19:22,000 --> 00:19:23,000 Because this is the signal. 354 00:19:23,001 --> 00:19:26,000 This term includes the signal and the noise. 355 00:19:26,000 --> 00:19:28,000 And I'm treating all of the other, what's coming 356 00:19:28,000 --> 00:19:29,001 from all the other stations, as noise. 357 00:19:30,000 --> 00:19:31,000 I'm lumping that in. 358 00:19:31,000 --> 00:19:34,000 Sometimes people say signal to noise plus interference. 359 00:19:34,001 --> 00:19:36,000 And they actually put an explicit i over there. 360 00:19:36,000 --> 00:19:38,000 I'm lumping all of the interference into noise. 361 00:19:39,001 --> 00:19:42,000 Because this is sort of going to be spread spectrum like. 362 00:19:42,000 --> 00:19:43,001 And maybe everybody's using random codes. 363 00:19:46,001 --> 00:19:50,001 So by propagation, what you can understand that 364 00:19:50,001 --> 00:19:52,001 there's propagation from every station. 365 00:19:53,000 --> 00:19:56,000 And what you care about in order to understand whether you've gotten a successful 366 00:19:56,000 --> 00:19:59,001 reception is whether the signal to noise ratio is sufficient. 367 00:20:00,000 --> 00:20:04,001 And sort of my criteria for successful reception, what I've done is I've taken 368 00:20:04,001 --> 00:20:09,000 Shannon's capacity theorem and solved it for signal to noise ratio. 369 00:20:10,000 --> 00:20:12,000 Remember your algebra, you can do that. 370 00:20:12,001 --> 00:20:16,000 And I've thrown in, and I chose a log base 2 so 371 00:20:16,000 --> 00:20:17,001 that I'm measuring information in bits. 372 00:20:18,001 --> 00:20:22,000 And then say you have the bit rate you want to communicate at and the bandwidth. 373 00:20:22,001 --> 00:20:24,001 And here it's 2 to that power. 374 00:20:25,000 --> 00:20:26,000 Subtract 1. 375 00:20:26,000 --> 00:20:30,001 And then it's got a fudge factor here, which is all of that. 376 00:20:31,000 --> 00:20:35,001 This is my abstraction of a radio engineer, a good communication engineer. 377 00:20:36,000 --> 00:20:37,000 You need the fudge factor. 378 00:20:37,000 --> 00:20:41,000 And probably needs a fudge factor of somewhere between 3 and 10. 379 00:20:41,001 --> 00:20:43,001 Or maybe with fancy turbo code, the only needs a 380 00:20:43,001 --> 00:20:45,000 fudge factor of 1.5 or something. 381 00:20:46,000 --> 00:20:49,001 And actually, I'm waving my hands a little bit here because when you're sending 382 00:20:49,001 --> 00:20:52,000 packets, you have to synchronize. 383 00:20:52,000 --> 00:20:55,000 And so how do you build a burst modem that actually approaches the Shannon limit? 384 00:20:55,000 --> 00:20:55,001 Well, that's tough. 385 00:20:57,001 --> 00:21:00,001 My answer to that is, well, actually, it doesn't have to just be a burst modem 386 00:21:00,001 --> 00:21:06,000 because if you've been swapping packets with this other station multiple times 387 00:21:06,000 --> 00:21:11,000 per second, then perhaps you can maintain some timing information and not 388 00:21:11,000 --> 00:21:13,000 actually have to start from scratch on every 389 00:21:13,000 --> 00:21:14,001 packet to get everything synchronized up. 390 00:21:16,001 --> 00:21:20,000 So actually, I think some of the commercial Part 15 radios that give you point-to 391 00:21:20,000 --> 00:21:22,001 -point data links, the radios go like this. 392 00:21:23,000 --> 00:21:29,001 And they actually maintain spreading code synchronization across the, yeah, 393 00:21:30,000 --> 00:21:31,001 so they don't have to actually go hunt. 394 00:21:31,001 --> 00:21:34,001 And so they're not really trying to build burst modems. 395 00:21:35,000 --> 00:21:38,000 But anyway, so this is my criteria for successful reception. 396 00:21:42,000 --> 00:21:44,000 Now, what about scaling? 397 00:21:46,000 --> 00:21:50,001 The concern is here that my neighbor is here near me. 398 00:21:51,000 --> 00:21:53,000 And I want to hear him. 399 00:21:53,000 --> 00:21:54,001 And I want to decode his packet. 400 00:21:55,001 --> 00:21:58,001 And whether or not I'm going to be able to do that depends on how 401 00:21:58,001 --> 00:22:00,000 much other stuff is out there. 402 00:22:01,001 --> 00:22:04,001 And that depends on how far we've scaled. 403 00:22:05,000 --> 00:22:11,000 And the most general thing to do is, well, what if... there's an 404 00:22:11,000 --> 00:22:13,000 unlimited number of stations out there. 405 00:22:13,001 --> 00:22:16,000 And I started thinking about that. 406 00:22:16,001 --> 00:22:18,001 And I started thinking about that problem. 407 00:22:18,001 --> 00:22:21,000 I had some friends who were like physicists and astronomers. 408 00:22:22,000 --> 00:22:26,000 And I went rambling to them, and they said, oh, that's just like Olver's Paradox. 409 00:22:26,001 --> 00:22:30,000 And Olver's Paradox is something in astronomy. 410 00:22:32,000 --> 00:22:32,001 Here's a question. 411 00:22:33,000 --> 00:22:34,000 How bright is the sky at night? 412 00:22:34,001 --> 00:22:36,000 Well, we can figure this out. 413 00:22:37,000 --> 00:22:40,001 We live in an infinitely old universe, perhaps. 414 00:22:41,001 --> 00:22:43,000 And the universe is infinite in extent. 415 00:22:44,000 --> 00:22:48,000 And there's a uniform finite density of galaxies throughout the 416 00:22:48,000 --> 00:22:50,000 universe, this density rho. 417 00:22:50,001 --> 00:22:54,000 And each galaxy radiates at some average power level. 418 00:22:55,000 --> 00:22:58,000 I'm kind of waving your hand about how evenly distributed 419 00:22:58,000 --> 00:22:59,001 there are, but we really don't care about that. 420 00:23:00,000 --> 00:23:02,001 And then you assume that, oh, and you look up at the sky at 421 00:23:02,001 --> 00:23:04,000 night, and it's electromagnetic radiation. 422 00:23:04,001 --> 00:23:06,000 It's all free space, path lost to the eye. 423 00:23:06,001 --> 00:23:09,001 And then you do the integral out to an infinite bound. 424 00:23:11,000 --> 00:23:13,001 Actually, I've screwed up in the interval a little bit here. 425 00:23:13,001 --> 00:23:17,000 And I was still thinking 2D when I made this slide. 426 00:23:17,001 --> 00:23:19,001 And I don't have the constants right, but I've got all the important terms. 427 00:23:19,001 --> 00:23:21,000 There's 1 over r squared in here. 428 00:23:22,000 --> 00:23:28,000 And as you're integrating from here out to infinity distance, you pick up a r 429 00:23:28,000 --> 00:23:30,001 squared dr thing. 430 00:23:31,000 --> 00:23:34,001 And you do the integral to ask, and the result of the integral is going to tell 431 00:23:34,001 --> 00:23:36,001 you how much power is impinging on your eye. 432 00:23:37,000 --> 00:23:38,000 And the integral diverges. 433 00:23:39,000 --> 00:23:42,000 So it should be an unbounded infinite amount of power 434 00:23:42,001 --> 00:23:44,000 on your eye when you look up at the sky at night. 435 00:23:44,001 --> 00:23:45,001 Well, you're not actually looking at the whole sky. 436 00:23:45,001 --> 00:23:47,000 You're only looking at a piece of it. 437 00:23:47,000 --> 00:23:48,000 But a piece of infinity is still infinity. 438 00:23:50,001 --> 00:23:52,001 And there's something wrong here. 439 00:23:53,000 --> 00:23:55,001 And there's probably something wrong with one of these 440 00:23:55,001 --> 00:23:58,000 assumptions, or more than one. 441 00:23:59,000 --> 00:24:01,001 And some astronomers, their standard model for the universe 442 00:24:01,001 --> 00:24:03,000 is that it's actually not infinitely old. 443 00:24:03,000 --> 00:24:05,000 And light travels at a finite speed. 444 00:24:05,001 --> 00:24:09,000 So the universe that we can see is finite in extent. 445 00:24:10,001 --> 00:24:12,001 And that's why the sky is dark at night, maybe. 446 00:24:13,000 --> 00:24:16,001 They're just theories, mysteries of the universe. 447 00:24:16,001 --> 00:24:23,000 But anyway, but for packet radio networks, we live on an infinite flat Earth. 448 00:24:24,000 --> 00:24:27,001 And if we have a uniform finite density of transmitters throughout, and each 449 00:24:27,001 --> 00:24:33,001 transmitter radiates at a given average power, alpha is measured. 450 00:24:33,001 --> 00:24:37,000 And I'm just sort of in order to make, what I've actually got on the integral 451 00:24:37,000 --> 00:24:41,000 here is I've got power as observed by a receiver at a distance. 452 00:24:41,001 --> 00:24:43,000 That's the power coming out of a thing. 453 00:24:43,001 --> 00:24:44,000 And you do that integral. 454 00:24:45,000 --> 00:24:47,001 And because two-dimensional space is smaller than three-dimensional 455 00:24:47,001 --> 00:24:50,000 space, the noise shouldn't grow as rapidly. 456 00:24:50,000 --> 00:24:52,000 And hopefully, this integral will not diverge. 457 00:24:54,000 --> 00:24:55,001 Unfortunately, it diverges as well. 458 00:24:56,000 --> 00:24:58,001 You get the integral of 1 over r squared r dr, which 459 00:24:58,001 --> 00:25:00,000 turns into an integral of 1 over r dr. 460 00:25:01,001 --> 00:25:02,001 And that's log of r. 461 00:25:03,000 --> 00:25:07,000 And you evaluate the indefinite integral of log r. 462 00:25:07,001 --> 00:25:09,000 And then you plug in the infinite bound. 463 00:25:09,001 --> 00:25:11,000 And log of infinity is still infinity. 464 00:25:12,000 --> 00:25:12,000 What? 465 00:25:14,001 --> 00:25:15,001 Yeah. 466 00:25:17,000 --> 00:25:19,001 So the initial integral diverges as well. 467 00:25:19,001 --> 00:25:22,000 This had me depressed for a couple months. 468 00:25:24,001 --> 00:25:27,001 At this point, I had decided to do this as a thesis project. 469 00:25:28,000 --> 00:25:32,000 And I was convinced that it all was lost, because packet radio networks cannot 470 00:25:32,000 --> 00:25:36,001 scale arbitrarily by this result. 471 00:25:40,000 --> 00:25:41,001 But then I learned something. 472 00:25:42,001 --> 00:25:44,001 We do not live on an infinite flat Earth. 473 00:25:46,000 --> 00:25:47,001 But does that really change anything? 474 00:25:49,001 --> 00:25:51,000 We have a finite horizon. 475 00:25:52,000 --> 00:25:52,001 Very good. 476 00:25:52,001 --> 00:25:55,001 So I'm going to do this calculation again. 477 00:25:56,001 --> 00:26:00,001 But I'm going to twist different knobs this time. 478 00:26:01,000 --> 00:26:03,000 I'm going to say that there's a sixth radius. 479 00:26:03,000 --> 00:26:04,001 This is where my receiver is. 480 00:26:04,001 --> 00:26:06,000 There's some sort of unit circle distance. 481 00:26:06,001 --> 00:26:10,000 And that's where the guy, that's the distance to the guy I'm trying to listen to. 482 00:26:10,000 --> 00:26:13,001 He's sort of out here at one unit distance or something. 483 00:26:14,000 --> 00:26:16,001 I'm going to get to that in just a moment in more detail. 484 00:26:17,000 --> 00:26:22,001 But at this radius, beyond this radius, they've dropped over the horizon. 485 00:26:22,001 --> 00:26:23,001 And I don't hear them at all. 486 00:26:23,001 --> 00:26:25,001 Or there's enough attenuation that I can neglect it. 487 00:26:27,001 --> 00:26:28,001 So that's fixed. 488 00:26:29,000 --> 00:26:33,000 And what I'm going to do is I've got this m is the number of stations. 489 00:26:33,001 --> 00:26:36,000 I didn't use the letter n, because that's signal to noise and signal to noise. 490 00:26:38,001 --> 00:26:39,001 This radius is fixed. 491 00:26:40,000 --> 00:26:40,001 And m is my knob. 492 00:26:40,001 --> 00:26:41,001 I'm going to turn it up. 493 00:26:41,001 --> 00:26:43,000 I'm going to start out with my two stations. 494 00:26:43,000 --> 00:26:45,001 And I'm going to think about 10 stations, 100 495 00:26:45,001 --> 00:26:47,001 stations, 1,000 stations, and go on. 496 00:26:49,000 --> 00:26:53,000 Now, if we assume this many stations are sort of uniformly distributed through 497 00:26:53,000 --> 00:26:57,001 the circle, then you take the number of 498 00:26:57,001 --> 00:26:59,000 stations divided by the area of the circle. 499 00:26:59,000 --> 00:27:03,001 And that sort of gives you the density, number of stations per unit area. 500 00:27:04,001 --> 00:27:09,001 Now, this r sub 0, this is kind of a trick. 501 00:27:11,000 --> 00:27:14,000 What I've done here is I said, well, how far away is that nearby neighbor? 502 00:27:15,000 --> 00:27:18,000 Well, that kind of depends on how many stations there are. 503 00:27:19,001 --> 00:27:23,001 And I'm thinking stations that are just randomly placed, or everybody puts them 504 00:27:23,001 --> 00:27:25,001 on their houses, and they are over their houses. 505 00:27:25,001 --> 00:27:29,000 But I need some measure of how far away that nearby neighbor is. 506 00:27:29,001 --> 00:27:34,000 So if you take density, which is number per unit area, which is numbers per meter 507 00:27:34,000 --> 00:27:38,000 squared or something, if you invert that and take a square root, 508 00:27:38,000 --> 00:27:39,001 you get something that has units of length. 509 00:27:41,000 --> 00:27:42,000 And I think of that as the character. 510 00:27:42,001 --> 00:27:45,001 Given a density of stations, that's kind of a characteristic length. 511 00:27:46,001 --> 00:27:52,001 And if you like to think about probability problems, and you take a circle of 512 00:27:52,001 --> 00:27:57,000 this radius, if you have stations randomly distributed at this density, and you 513 00:27:57,000 --> 00:28:02,001 think about a circle of this radius r sub 0, which is the 514 00:28:02,001 --> 00:28:05,000 density raised to the minus 1 half power. 515 00:28:05,000 --> 00:28:06,000 You invert it. 516 00:28:06,001 --> 00:28:08,000 That's 1 over the density square root. 517 00:28:08,001 --> 00:28:10,000 That's 1 over the square root of the density. 518 00:28:11,001 --> 00:28:15,001 If you take a circle of that radius in an area that you've got randomly stations, 519 00:28:15,001 --> 00:28:17,001 then ask, what is the expected number of stations 520 00:28:17,001 --> 00:28:19,001 that I'm going to find inside this circle? 521 00:28:19,001 --> 00:28:21,000 That's pi stations. 522 00:28:21,001 --> 00:28:27,000 And if you double that radius, you'd expect to find 4 pi stations, about a dozen 523 00:28:27,000 --> 00:28:29,000 in a circle. 524 00:28:29,001 --> 00:28:34,001 So I'm going to use this distance here to represent how far is it to a nearby 525 00:28:34,001 --> 00:28:37,000 neighbor for the purposes of this calculation. 526 00:28:37,001 --> 00:28:42,000 And then there's another factor to throw in here, which is the duty cycle. 527 00:28:42,001 --> 00:28:45,000 Not all the stations are going to be transmitting at once. 528 00:28:45,001 --> 00:28:47,001 Maybe only half, or a third, or 10%. 529 00:28:48,001 --> 00:28:50,000 So there's going to be some duty cycle. 530 00:28:50,000 --> 00:28:53,001 So I'm going to carry this duty cycle through all the analysis as well. 531 00:28:54,001 --> 00:28:56,001 So how much signal is there? 532 00:28:57,000 --> 00:29:03,000 Well, that depends on the transmitter power and 533 00:29:03,000 --> 00:29:04,001 all sorts of constants and stuff. 534 00:29:05,000 --> 00:29:07,000 You can go read about your antenna and feed line books. 535 00:29:07,001 --> 00:29:10,000 And you've got a feed line attenuation and 536 00:29:10,000 --> 00:29:12,000 perhaps the antenna gain and everything. 537 00:29:12,000 --> 00:29:14,001 But I'm assuming all the stations are using the same thing. 538 00:29:14,001 --> 00:29:16,001 And so all of the sources of the interference are the same. 539 00:29:18,000 --> 00:29:25,000 So I'm going to use this constant alpha to collect all that detail. 540 00:29:25,001 --> 00:29:30,001 And what's important is that the signal goes as 1 over the distance r squared. 541 00:29:31,001 --> 00:29:34,001 I've got the lambda squared term in here, but it's all in one band. 542 00:29:35,000 --> 00:29:37,000 What's important is that this alpha comes in again. 543 00:29:37,001 --> 00:29:39,000 I'm neglecting all the thermal noise. 544 00:29:39,001 --> 00:29:41,001 I'm assuming this is a self-interference limited system. 545 00:29:43,000 --> 00:29:46,000 So all the interference comes from similar stations. 546 00:29:46,000 --> 00:29:47,001 So I'm going to have the same alpha down here. 547 00:29:48,000 --> 00:29:51,000 Anyway, you take alpha and 1 over r squared. 548 00:29:51,001 --> 00:29:57,001 Now, if you square this r sub 0, which is 1 over the square root of the density, 549 00:29:58,000 --> 00:30:01,000 when you square that, you get this alpha times the density 550 00:30:02,000 --> 00:30:03,001 because this is in the denominator. 551 00:30:04,000 --> 00:30:06,000 So the signal is proportional to the density. 552 00:30:09,000 --> 00:30:11,001 And this rho is a function. 553 00:30:12,000 --> 00:30:17,000 The only thing that's really a variable in this thing is this capital M, which 554 00:30:17,000 --> 00:30:19,000 on the previous slide. 555 00:30:19,000 --> 00:30:21,001 And this rho is defined as a function of density as well. 556 00:30:21,001 --> 00:30:23,001 And I'm going to do some substitution in a moment. 557 00:30:23,001 --> 00:30:26,000 The noise is the same integral again. 558 00:30:26,001 --> 00:30:27,001 It's the Olders paradox integral. 559 00:30:28,000 --> 00:30:31,000 And I'm only going to integrate out to my fixed radius. 560 00:30:31,000 --> 00:30:34,001 And this r, this rho is also a function of r. 561 00:30:34,001 --> 00:30:38,001 So I've only got one variable to sim, but I can't. 562 00:30:43,000 --> 00:30:44,000 This r is constant. 563 00:30:44,001 --> 00:30:46,001 This rho is a function of both the number of stations 564 00:30:46,001 --> 00:30:48,001 and this fixed radius as well. 565 00:30:53,000 --> 00:30:55,000 So I integrate out only to r. 566 00:30:55,000 --> 00:30:56,000 Now, I have another problem. 567 00:30:56,001 --> 00:30:58,000 What do I choose for a lower bound of the integral? 568 00:30:59,000 --> 00:31:00,001 And I have to hand wave here again. 569 00:31:00,001 --> 00:31:01,000 What's your question? 570 00:31:01,000 --> 00:31:02,000 That's what I was just going to ask. 571 00:31:02,000 --> 00:31:05,000 This is only talking about the only integrating from the range 572 00:31:05,000 --> 00:31:07,000 of the desired station, the top. 573 00:31:07,000 --> 00:31:08,001 But what about other stations? 574 00:31:08,001 --> 00:31:09,001 That might be closer. 575 00:31:10,000 --> 00:31:10,000 Exactly. 576 00:31:11,000 --> 00:31:13,000 Now, why not just drop this to 0? 577 00:31:13,001 --> 00:31:16,000 This integral also diverges at 0. 578 00:31:16,001 --> 00:31:22,001 It flows up there as well, because log of 0 is another problem. 579 00:31:23,000 --> 00:31:25,000 So I couldn't go all the way to 0. 580 00:31:25,000 --> 00:31:26,000 I had to pick some number. 581 00:31:26,001 --> 00:31:29,001 The reason I picked r sub 0 is because it makes the algebra work well. 582 00:31:32,001 --> 00:31:36,001 But I claim it's reasonable, because I've said the number of stations you expect 583 00:31:36,001 --> 00:31:38,001 to find in here are only pi. 584 00:31:39,000 --> 00:31:42,000 So there's only three other guys that I'm neglecting here. 585 00:31:42,001 --> 00:31:43,000 Or maybe there's five. 586 00:31:43,000 --> 00:31:45,000 But they're all right next to you. 587 00:31:50,001 --> 00:31:51,001 It doesn't matter. 588 00:31:52,001 --> 00:31:54,000 I'll get the simulation results. 589 00:31:54,000 --> 00:31:56,000 And hopefully by the end of the day, you won't be worried about this. 590 00:31:57,001 --> 00:31:59,000 Those guys are clearly local. 591 00:31:59,000 --> 00:32:00,001 And maybe we can do some other. 592 00:32:01,000 --> 00:32:02,000 That's a different issue. 593 00:32:03,001 --> 00:32:04,001 Anyway, you do the integral. 594 00:32:05,000 --> 00:32:05,001 And you plug in. 595 00:32:06,000 --> 00:32:07,001 And I'm skipping over a bunch of algebra here. 596 00:32:08,000 --> 00:32:10,000 But you do some simplification. 597 00:32:10,000 --> 00:32:11,001 And you get a term for the noise. 598 00:32:11,001 --> 00:32:13,001 And then you take the ratio of signal to noise. 599 00:32:15,001 --> 00:32:21,001 And everything drops out almost, leaving only this capital M 600 00:32:21,001 --> 00:32:24,001 and the duty cycle and a few constants. 601 00:32:26,000 --> 00:32:28,000 And this is sort of a remarkable result. 602 00:32:30,000 --> 00:32:34,000 What's sort of stunning to me when I first saw this was that 603 00:32:34,000 --> 00:32:36,000 the scale length drops out. 604 00:32:36,001 --> 00:32:38,000 I was surprised by that. 605 00:32:38,001 --> 00:32:41,000 After thinking, I realized I shouldn't have been surprised by that. 606 00:32:41,000 --> 00:32:44,001 Because if you're an interference limited system and you bring everybody together 607 00:32:44,001 --> 00:32:50,001 by a factor of 2, then everything goes up by a factor of 4 in 608 00:32:50,001 --> 00:32:53,000 power, both noise and signal. 609 00:32:53,001 --> 00:32:54,001 So it really shouldn't be surprising. 610 00:32:57,000 --> 00:33:00,000 So this is something that's true at any scale length. 611 00:33:02,001 --> 00:33:05,001 So the signal to noise ratio depends only on this number of stations. 612 00:33:05,001 --> 00:33:09,000 So it's 1 over the log of how many stations you've got. 613 00:33:09,001 --> 00:33:12,001 Actually, it's 1 over the duty cycle times pi times the log 614 00:33:12,001 --> 00:33:14,000 of the number of stations divided by pi. 615 00:33:15,000 --> 00:33:21,001 So the thesis is actually on the web. 616 00:33:22,000 --> 00:33:23,001 There's a sitcom paper on the web. 617 00:33:24,000 --> 00:33:27,001 And the thesis of the PostScript file is actually put up for FTP. 618 00:33:28,001 --> 00:33:33,000 And somebody at Tapper, before I even really knew what Tapper was three years 619 00:33:33,000 --> 00:33:39,000 ago, took the PostScript file that I had made available, converted it to a PDF 620 00:33:39,000 --> 00:33:41,000 file, and put it on the Tapper FTP server. 621 00:33:41,000 --> 00:33:43,000 So there's been a PDF file of my whole thesis. 622 00:33:43,000 --> 00:33:46,000 It's only about 80 pages, single spaced. 623 00:33:48,000 --> 00:33:49,001 It's available on the Tapper website. 624 00:33:50,000 --> 00:33:53,001 And it actually, yeah, it doesn't skip all the algebra. 625 00:33:54,000 --> 00:33:55,001 So you can actually try and check my algebra. 626 00:34:03,000 --> 00:34:04,000 Go ahead. 627 00:34:04,000 --> 00:34:08,001 The question is, although you derive it based on circle text, it's now 628 00:34:08,001 --> 00:34:10,001 pretty independent of the one in the case. 629 00:34:11,001 --> 00:34:14,001 A square is almost a circle, I mean, if you're standing in the middle of it. 630 00:34:14,001 --> 00:34:15,000 [...] 631 00:34:16,000 --> 00:34:16,000 Yeah. 632 00:34:17,000 --> 00:34:20,000 Well, this calculation is in the circle, because 633 00:34:20,000 --> 00:34:21,001 that's where the pi's and stuff come from. 634 00:34:22,000 --> 00:34:24,000 If it's not a circle, maybe this isn't pi. 635 00:34:24,001 --> 00:34:25,001 Maybe it's 2 or something. 636 00:34:26,000 --> 00:34:30,000 Would it get real messy to try and introduce some randomness of height, the 637 00:34:30,000 --> 00:34:33,000 concept of height gain, and the fact of topology, real topology? 638 00:34:33,000 --> 00:34:35,000 Well, I was trying for a worst case. 639 00:34:35,001 --> 00:34:40,000 Anything, any real world propagation phenomena are going to cut down distant 640 00:34:40,000 --> 00:34:42,000 guys and help you improve. 641 00:34:42,001 --> 00:34:44,001 So this is how bad can it get. 642 00:34:48,000 --> 00:34:51,000 Now, I've got a plot of this for a bunch of interesting values. 643 00:34:51,001 --> 00:34:54,000 So what I've got on the next slide, I don't have two projectors, so I 644 00:34:54,000 --> 00:34:55,001 can't show you both at the same time. 645 00:34:55,001 --> 00:34:59,000 But what I'm going to show you is signal to noise ratio as a function of the 646 00:34:59,000 --> 00:35:02,001 number of stations for a few different values of duty cycle. 647 00:35:03,001 --> 00:35:04,000 [...] 648 00:35:05,001 --> 00:35:06,000 Let me. 649 00:35:06,000 --> 00:35:12,001 One factor that strikes my mind is there's obviously a horizontal plane 650 00:35:12,001 --> 00:35:14,000 with which stations can be. 651 00:35:14,001 --> 00:35:17,000 There's also a possibility of a vertical plane. 652 00:35:17,000 --> 00:35:18,000 I neglected that. 653 00:35:18,000 --> 00:35:18,001 That was correct. 654 00:35:20,000 --> 00:35:24,000 But we haven't built skyscrapers arbitrarily high. 655 00:35:24,000 --> 00:35:25,001 And if you're in a big building like that, you 656 00:35:25,001 --> 00:35:27,000 probably just don't have one station on the roof anyway. 657 00:35:28,000 --> 00:35:31,001 Actually, I'm trying to get to the suburbs, not to the downtown. 658 00:35:31,001 --> 00:35:33,001 Do you have a low energy road on a lot of times? 659 00:35:34,001 --> 00:35:35,000 [...] 660 00:35:35,001 --> 00:35:36,000 Yeah. 661 00:35:37,000 --> 00:35:38,001 Well, because the building attenuates. 662 00:35:39,000 --> 00:35:40,000 I neglected all that. 663 00:35:40,000 --> 00:35:43,001 This is still thinking about stations in the flat plane of the finite circle. 664 00:35:44,000 --> 00:35:47,000 So here's the plot for signal to noise ratio on this axis. 665 00:35:48,001 --> 00:35:49,001 Actually, I've got two copies of this plot. 666 00:35:50,000 --> 00:35:51,000 This one I wrote all over. 667 00:35:54,001 --> 00:35:55,001 I'm going to use it. 668 00:35:56,001 --> 00:35:59,000 I've got it labeled in dB, but then I took a pin. 669 00:35:59,001 --> 00:36:03,001 And this is the 5 dB signal to noise ratio, or a 3 to 1 ratio. 670 00:36:03,001 --> 00:36:04,001 This is like a 1 to 1 ratio. 671 00:36:05,000 --> 00:36:08,000 This is 0 dB minus 5 minus 10 minus 15 minus 20. 672 00:36:08,001 --> 00:36:11,001 So this would be a 1 part in 100 signal to noise ratio. 673 00:36:12,001 --> 00:36:18,001 And on the x-axis, I have number of stations. 10 to the 2, 10 to the 3, 4, 674 00:36:18,001 --> 00:36:20,000 5, or in other words, this is 1,000. 675 00:36:20,001 --> 00:36:21,000 That's a million. 676 00:36:21,001 --> 00:36:22,001 This is a billion. 677 00:36:23,000 --> 00:36:24,001 And over here would be 10 to the 12. 678 00:36:25,001 --> 00:36:26,000 Stations. 679 00:36:27,001 --> 00:36:31,000 And this curve is 100% duty cycle. 680 00:36:31,001 --> 00:36:33,001 This is a 50% duty cycle, 20%. 681 00:36:33,001 --> 00:36:37,000 And actually, this just moves in dB, whatever this factor is. 682 00:36:38,000 --> 00:36:40,000 So we can just look at the 100% duty cycle. 683 00:36:41,000 --> 00:36:42,000 All the curves have the same shape. 684 00:36:44,001 --> 00:36:49,000 And so the thing to observe is that this flattens, 685 00:36:49,000 --> 00:36:50,001 seems to sort of flatten out here. 686 00:36:51,000 --> 00:36:56,000 Which means if you build the station, if you build the, if you designed 687 00:36:57,001 --> 00:37:03,000 to cope with 1 part in 100 signal to noise ratios, it would work 688 00:37:03,000 --> 00:37:04,001 here, it would work here. 689 00:37:04,001 --> 00:37:09,000 And then as you got to larger numbers of stations, it could continue to work. 690 00:37:11,000 --> 00:37:12,001 And this flattens out. 691 00:37:13,000 --> 00:37:19,001 I mean, this 100% line doesn't not cross the minus 21 dB 692 00:37:19,001 --> 00:37:22,001 line, I believe it was, until you get to 10 to the 18 stations. 693 00:37:23,000 --> 00:37:23,000 [...] 694 00:37:27,000 --> 00:37:31,000 And this ended my two month depression about the scaling problem. 695 00:37:31,001 --> 00:37:36,000 This made me think, yes, it can scale to everybody having one on their roof. 696 00:37:41,000 --> 00:37:47,000 No, they eventually go to zero signal to noise ratio. 697 00:37:49,001 --> 00:37:52,000 They get there extremely slowly. 698 00:37:52,000 --> 00:37:54,000 Do they go to minus infinity? 699 00:37:55,001 --> 00:37:58,001 Yeah, there's actually, after I finished the thesis, I did some reading. 700 00:37:59,000 --> 00:38:04,000 And I think in one of, James Gluck wrote a biography of Richard 701 00:38:04,000 --> 00:38:05,001 Feynman, which I highly recommend. 702 00:38:07,001 --> 00:38:10,001 And there's actually, in the middle of the book, there's this quote about talking 703 00:38:10,001 --> 00:38:13,001 about when Feynman realized that a log of infinity is not infinity 704 00:38:13,001 --> 00:38:15,001 in practical sense. 705 00:38:15,001 --> 00:38:18,000 I mean, mathematically, it is. 706 00:38:18,000 --> 00:38:21,001 But any time, because they were solving some problem in physics, and he just 707 00:38:21,001 --> 00:38:24,000 says, well, what if we just neglect that term, and then they made progress? 708 00:38:27,000 --> 00:38:27,001 That's kind of neat. 709 00:38:29,000 --> 00:38:32,000 And so logs grow very slowly. 710 00:38:33,000 --> 00:38:38,000 The reason is because we're taking the log of the number of stations. 711 00:38:38,001 --> 00:38:40,001 And once you logarithm, you have to. 712 00:38:43,001 --> 00:38:44,001 So this is neat. 713 00:38:47,001 --> 00:38:49,001 This, I've got the words on this slide. 714 00:38:49,001 --> 00:38:54,000 The conclusion is you can hear your nearby neighbor. 715 00:38:55,001 --> 00:38:58,000 And it depends only on the log and the number of stations. 716 00:38:58,001 --> 00:38:59,001 And it falls very slowly. 717 00:39:01,001 --> 00:39:03,001 And it only gets to about minus 20 dB. 718 00:39:03,001 --> 00:39:05,000 And that's just 100% 3D cycle. 719 00:39:05,001 --> 00:39:08,000 At 50% 3D cycle, things are 3 dB better. 720 00:39:08,001 --> 00:39:10,001 At a 10% 3D cycle, things are 10 dB better. 721 00:39:14,001 --> 00:39:17,001 It's just greater than the network you can just change. 722 00:39:18,000 --> 00:39:19,000 It depends on the cycle of energy. 723 00:39:21,000 --> 00:39:24,000 Or you can just design to, I mean, yeah. 724 00:39:25,000 --> 00:39:26,000 That's absolutely possible. 725 00:39:26,001 --> 00:39:28,000 There are many possibilities now. 726 00:39:28,000 --> 00:39:31,000 And this made me think there are many possibilities now. 727 00:39:31,000 --> 00:39:31,001 And I went on. 728 00:39:31,001 --> 00:39:34,001 When you say you have more processes, does that mean you can have more processes? 729 00:39:35,000 --> 00:39:36,001 [...] 730 00:39:38,001 --> 00:39:39,001 No, you don't actually. 731 00:39:40,000 --> 00:39:44,001 It's a, it turns out, it's a, the duty cycle issue, it turns out it's a wash. 732 00:39:45,000 --> 00:39:49,000 If you double the duty cycle, if you cut the duty cycle in half, you get three, 733 00:39:49,001 --> 00:39:51,000 you can only transmit half the time. 734 00:39:51,001 --> 00:39:53,001 But you can get twice as many vistas times. 735 00:39:54,000 --> 00:39:54,001 So it's a wash. 736 00:39:54,001 --> 00:39:56,001 You don't gain anything by cutting back on duty cycle. 737 00:39:57,000 --> 00:39:59,000 [...] 738 00:39:59,000 --> 00:39:59,001 Yeah. 739 00:40:00,001 --> 00:40:02,000 I didn't come to understand that until later. 740 00:40:03,000 --> 00:40:03,000 But yes. 741 00:40:04,001 --> 00:40:07,001 The question was, well, what's the right way to place the design of the system? 742 00:40:07,001 --> 00:40:09,000 I didn't plan on mentioning this now. 743 00:40:09,001 --> 00:40:12,000 But something I figured out. 744 00:40:12,000 --> 00:40:14,000 It's like, well, what duty cycle should you run the system at? 745 00:40:14,000 --> 00:40:20,001 Well, in a noise-limited environment, the capacity is roughly proportionate. 746 00:40:20,001 --> 00:40:22,001 This is something Matt Aitouz had on the slide yesterday. 747 00:40:23,000 --> 00:40:24,001 And actually, I realized I should make that slide. 748 00:40:25,001 --> 00:40:30,000 It says that the bits per second that you can get through in a noise-limited 749 00:40:30,000 --> 00:40:31,001 system, in other words, with a signal-to-noise 750 00:40:31,001 --> 00:40:33,000 ratio, is noticeably less than one. 751 00:40:34,000 --> 00:40:36,000 It's proportional to the signal-to-noise ratio. 752 00:40:37,000 --> 00:40:42,000 So if you do a fifth, if say you move from a 20% duty cycle to a 10% duty cycle, 753 00:40:42,001 --> 00:40:45,001 you've improved the signal-to-noise ratio sort of 754 00:40:45,001 --> 00:40:47,000 throughout the system by a factor of 2. 755 00:40:48,001 --> 00:40:54,000 So you can go twice as fast, but you're only spending half the time transmitting 756 00:40:54,000 --> 00:40:59,000 the two or the four, which means that nothing's changed. 757 00:40:59,001 --> 00:41:02,000 So it's a wash as to where you actually design the system on here. 758 00:41:03,001 --> 00:41:06,000 And in a little while, I'll be suggesting that you 759 00:41:06,000 --> 00:41:08,000 should spend more than half the time transmitting. 760 00:41:13,001 --> 00:41:16,001 No, I'm sorry, what? 761 00:41:21,001 --> 00:41:23,000 Yeah, I've lost my design. 762 00:41:24,001 --> 00:41:26,001 You're relaying for people too, so. 763 00:41:28,001 --> 00:41:33,000 So this slide actually covers a lot of ground. 764 00:41:34,001 --> 00:41:36,001 I can't talk about the entire thesis today. 765 00:41:36,001 --> 00:41:40,001 I'm going to have to skip over some details. 766 00:41:40,001 --> 00:41:43,001 But I've still got a lot to talk about. 767 00:41:44,000 --> 00:41:49,001 I think I'm only going to talk about, well, I need to explain all of this, but 768 00:41:49,001 --> 00:41:52,001 I'm going to hand wave my way all the way through this 769 00:41:52,001 --> 00:41:54,001 slide to try to give you the whole picture. 770 00:41:55,000 --> 00:41:57,001 And I'm going to come back and expand on things and try to 771 00:41:57,001 --> 00:41:59,001 illustrate, and hopefully it will all gel. 772 00:42:01,000 --> 00:42:04,001 What I've just showed you is that you can scale a spread second with sufficient 773 00:42:04,001 --> 00:42:07,000 processing gain is what lets this thing scale. 774 00:42:09,001 --> 00:42:15,001 And you can't, and I understood that it seems to me that you have to not try to 775 00:42:15,001 --> 00:42:18,000 skip over people, that you need to route over short hops. 776 00:42:18,001 --> 00:42:21,000 And if somebody shows up between you and where you were going, you should start 777 00:42:21,000 --> 00:42:24,000 routing through them for the purposes of letting the system scale. 778 00:42:26,000 --> 00:42:30,000 And I'm going to come back and hopefully plant some more intuition about 779 00:42:30,000 --> 00:42:31,001 this right towards the end of my talk. 780 00:42:33,000 --> 00:42:36,000 But I was sort of going with this on intuition at this point. 781 00:42:38,000 --> 00:42:41,001 Every station I expect will have one transmitter. 782 00:42:44,000 --> 00:42:46,001 When I was thinking through this, I've got other ideas 783 00:42:46,001 --> 00:42:48,000 for actually how to really do this. 784 00:42:48,001 --> 00:42:53,001 But for now, think of every station as having one transmitter, one on the 785 00:42:53,001 --> 00:42:59,001 antenna, using that same antenna for receive, and cannot 786 00:42:59,001 --> 00:43:02,000 hear while its transmitters on. 787 00:43:02,000 --> 00:43:04,000 So when the transmitter comes on, the station is deaf. 788 00:43:05,000 --> 00:43:09,000 So you can't, you have to somehow avoid stomping on 789 00:43:09,000 --> 00:43:10,001 yourself on your own reception. 790 00:43:11,001 --> 00:43:13,001 And I'm going to talk in detail about that. 791 00:43:14,001 --> 00:43:16,001 But there's the problem of what if two people try to 792 00:43:16,001 --> 00:43:18,000 send you a packet at the same time? 793 00:43:18,000 --> 00:43:20,000 Well, with spread spectrum, you can run multiple of these 794 00:43:20,000 --> 00:43:21,001 spreading channels and capture them both. 795 00:43:24,000 --> 00:43:28,000 And so, for now, I'm going to say multiple of these spreading channels. 796 00:43:28,000 --> 00:43:30,000 In fact, we'll put in however many we need. 797 00:43:30,001 --> 00:43:34,000 I haven't really, I haven't come up with the exact 798 00:43:34,000 --> 00:43:35,001 argument for what we really need. 799 00:43:36,000 --> 00:43:38,001 But this is how you solve the problem of two people sending 800 00:43:38,001 --> 00:43:40,000 you packets at the same time. 801 00:43:40,001 --> 00:43:46,001 A lot of literature on packet rate, like Macaw, MACA, and then all of the follow 802 00:43:46,001 --> 00:43:51,000 on, the MACAW and the FANA stuff that's all been done just 803 00:43:51,000 --> 00:43:52,001 on the last eight or so years. 804 00:43:53,000 --> 00:43:56,001 Starting with Phil Carnes paper, which was a DCC paper in 1990, I think. 805 00:43:56,001 --> 00:44:01,000 I'm not really thinking about Indian 806 00:44:01,000 --> 00:44:03,000 protocols, I'm just trying to get communication working. 807 00:44:03,000 --> 00:44:08,000 But the, Is there some of these issues of, you know, propagation delay with 808 00:44:08,000 --> 00:44:11,000 driving protocols and propagation delay? 809 00:44:11,000 --> 00:44:14,000 Well, propagation is five microseconds per mile. 810 00:44:15,000 --> 00:44:16,000 And I sort of neglect that. 811 00:44:17,000 --> 00:44:19,001 You have also got issue of protocol acknowledgment delays. 812 00:44:20,000 --> 00:44:23,000 Well, I'm thinking I want to do end to end protocols. 813 00:44:24,000 --> 00:44:27,001 So I'm going to, I'd like to be able to engineer the system so that the per hop 814 00:44:27,001 --> 00:44:32,000 reliability is high enough so that we can just build the reliability on the end 815 00:44:32,000 --> 00:44:35,000 end things like the rest of the internet works. 816 00:44:36,001 --> 00:44:42,000 So I'd like to, when a packet is transmitted by a station, I'd like it to be 817 00:44:42,000 --> 00:44:44,001 received by that receiver almost certainly. 818 00:44:45,000 --> 00:44:48,000 So I don't need to do any hop by hop acknowledgment, any feedback. 819 00:44:48,001 --> 00:44:50,000 And so you can just go on. 820 00:44:50,001 --> 00:44:53,001 And then do that, you have to get rid of any packet loss 821 00:44:53,001 --> 00:44:55,000 due to what people think of as collisions. 822 00:44:56,001 --> 00:45:00,001 Collisions, I think are a misleading term because, you know, it's all signal to 823 00:45:00,001 --> 00:45:04,001 noise ratios and all depends on, you know, whether you had enough to decode it. 824 00:45:05,000 --> 00:45:10,000 And if you're in the middle of a sea of a million stations, then the real issue 825 00:45:10,000 --> 00:45:14,001 is if you have enough processing gain and, you know, whether the signal noise 826 00:45:14,001 --> 00:45:18,000 ratio or decoding, what was the probability of decoding that packet? 827 00:45:18,000 --> 00:45:20,001 But I'd like to engineer that to be reliable. 828 00:45:21,000 --> 00:45:23,000 And I don't really think about the real 829 00:45:23,000 --> 00:45:24,001 problem that I'm trying to solve as collisions. 830 00:45:24,001 --> 00:45:26,000 I didn't come at this from a collisions problem. 831 00:45:26,000 --> 00:45:29,000 But if we want to think about collisions for a second, there's three cases. 832 00:45:29,001 --> 00:45:32,000 I don't have the slide for this, but a little picture in the thesis. 833 00:45:33,000 --> 00:45:36,001 There's a, I don't remember what number, what order I put 834 00:45:36,001 --> 00:45:38,001 them in the thesis, but there's a couple possibilities. 835 00:45:38,001 --> 00:45:44,000 There's like, I'm trying to receive a packet from a guy over here, and then 836 00:45:44,000 --> 00:45:46,001 there's a guy over here trying to send a packet to somebody else. 837 00:45:46,001 --> 00:45:50,000 And so I get a signal from him, and I'm getting interference from this 838 00:45:50,000 --> 00:45:52,001 transmission for going over there. 839 00:45:53,000 --> 00:45:54,000 That's one type of collision. 840 00:45:54,001 --> 00:45:56,001 And with spread spectrum, I mean, I've already like 841 00:45:56,001 --> 00:45:58,001 included like all the other transmissions. 842 00:45:59,000 --> 00:46:03,000 And so if this is a sort of a type one collision, I'm not really worried about 843 00:46:03,000 --> 00:46:05,000 that because I'm sort of solving that with spread spectrum. 844 00:46:05,001 --> 00:46:09,000 The second case would be two people sending packets at the same time to me. 845 00:46:09,000 --> 00:46:12,001 And that's what this multiple de-spreading channels issue is about. 846 00:46:12,001 --> 00:46:16,001 And another type of collision is somebody's trying to send a packet to me, and at 847 00:46:16,001 --> 00:46:18,001 the same time I'm transmitting a packet to somebody else. 848 00:46:19,000 --> 00:46:23,001 And that is still a problem because I'm completely deaf when my transmitter's on 849 00:46:23,001 --> 00:46:26,001 because the most performance you can get out of a duplexer for 850 00:46:26,001 --> 00:46:28,000 an antenna is about 20 dB isolation. 851 00:46:28,001 --> 00:46:32,000 And the difference between a transmitted signal level up the antenna and what 852 00:46:32,000 --> 00:46:34,001 comes down at the other end is on the order of 100 dB. 853 00:46:37,000 --> 00:46:41,000 So you can only get about 20 dB of isolation on the same frequency. 854 00:46:42,001 --> 00:46:43,000 Yeah. 855 00:46:44,000 --> 00:46:48,000 Well, the old cards are getting senior, you know, 90, but that's the likelihood. 856 00:46:48,001 --> 00:46:50,000 Well, in separate antennas. 857 00:46:50,001 --> 00:46:53,000 They're not using the same feed line for that. 858 00:46:53,000 --> 00:46:55,000 Well, you can't get any separation. 859 00:46:56,000 --> 00:46:59,001 You can get about 20 dB on the same feed line, but only 20 and you need about 860 00:46:59,001 --> 00:47:01,000 100, so you're about 80 dB short. 861 00:47:01,000 --> 00:47:04,000 There are some short order systems for dB, but they're very narrow banded. 862 00:47:04,001 --> 00:47:05,000 And probably extensive. 863 00:47:05,000 --> 00:47:07,001 So, wait a minute. 864 00:47:07,001 --> 00:47:14,000 If you go back to that 100% duty cycle, is everybody's transmitting 100%? 865 00:47:14,001 --> 00:47:16,000 [...] do you detect only everybody's deaf? 866 00:47:17,000 --> 00:47:17,000 That's right. 867 00:47:18,000 --> 00:47:19,001 So people are going to... 868 00:47:19,001 --> 00:47:19,001 What? 869 00:47:20,000 --> 00:47:20,001 No, it has to be less. 870 00:47:21,000 --> 00:47:21,001 That's right. 871 00:47:22,001 --> 00:47:23,000 That's right. 872 00:47:25,000 --> 00:47:26,000 But maybe 50%. 873 00:47:26,001 --> 00:47:29,001 That's only 3 dB difference in the whole noise level. 874 00:47:30,001 --> 00:47:32,000 I don't think I said anything contrary to that. 875 00:47:33,000 --> 00:47:38,001 Are you assuming that the noise calculation, which hypothesis you gave 876 00:47:40,000 --> 00:47:44,000 against all other stations, all the stations within radius r? 877 00:47:48,001 --> 00:47:52,000 Well, to be truly orthogonal, it all have to be 878 00:47:52,000 --> 00:47:54,000 synchronized from the point of view of the receiver. 879 00:47:55,000 --> 00:47:55,001 I mean... 880 00:47:55,001 --> 00:47:57,000 Within 3 [...] 881 00:47:57,000 --> 00:47:59,001 Well, perhaps there are... 882 00:47:59,001 --> 00:48:02,000 I mean, do you consider random codes to be orthogonal? 883 00:48:05,001 --> 00:48:10,001 What kind of performance do you get if everybody uses codes that... 884 00:48:10,001 --> 00:48:11,000 The code... 885 00:48:11,001 --> 00:48:14,001 There's a lot of detail that we could go into here. 886 00:48:17,000 --> 00:48:21,000 What do you mean by orthogonal? 887 00:48:22,000 --> 00:48:25,001 Meaning that the correlation... 888 00:48:25,001 --> 00:48:32,000 [...] correlation... ... the system in there... [...] amount 889 00:48:32,000 --> 00:48:36,000 located in the correlation range... ...and the station [...] 890 00:48:36,001 --> 00:48:37,000 [...] 891 00:48:37,001 --> 00:48:43,000 In which case, the number of orthogonal codes you need... ...is equal to the 892 00:48:43,000 --> 00:48:44,001 number of stations... 893 00:48:46,001 --> 00:48:47,000 Yeah. 894 00:48:47,001 --> 00:48:48,001 There's a sort of a... 895 00:48:48,001 --> 00:48:51,000 There's a standard way that spread spectrum systems 896 00:48:51,000 --> 00:48:52,001 are built where everybody uses... 897 00:48:56,001 --> 00:48:59,001 They repeat the same chip pattern for every bit. 898 00:49:00,000 --> 00:49:03,001 Basically, the spreading code repetition rate is the same as the bit time. 899 00:49:04,000 --> 00:49:05,000 And you don't need to do that. 900 00:49:05,001 --> 00:49:06,000 So you can... 901 00:49:06,001 --> 00:49:09,001 You can have spreading codes that repeat over longer cycles. 902 00:49:10,001 --> 00:49:14,000 And when you go to that, then you actually have a larger number of codes. 903 00:49:15,000 --> 00:49:18,000 And now you have the problem of like, well, did I get this bit right? 904 00:49:18,000 --> 00:49:19,001 And it's like, well, there... 905 00:49:19,001 --> 00:49:21,000 That's the probabilistic thing. 906 00:49:21,001 --> 00:49:23,001 And you're probably going to have to wrap error correcting codes around that. 907 00:49:23,001 --> 00:49:28,001 And I appeal to the, you know, if you treat people with noise in the band... 908 00:49:29,000 --> 00:49:31,000 ...and, you know, Shannon... ...Saul Shannon's 909 00:49:31,000 --> 00:49:32,001 equation, then there ought to be some way to do it. 910 00:49:33,000 --> 00:49:34,000 I haven't... 911 00:49:34,000 --> 00:49:37,001 The literature talks about receiver-directed codes, transmitter-directed codes. 912 00:49:38,001 --> 00:49:41,000 I wave my hands and I say, everybody's using random codes. 913 00:49:42,000 --> 00:49:46,001 And when you're talking 20 dB of processing gain, you've got on the order of... 914 00:49:47,001 --> 00:49:52,001 You know, if you did it that way, you'd have on the order of 100 chips per bit. 915 00:49:53,001 --> 00:49:58,000 And even if you want to constrain so that the offset in any bit is at most 916 00:49:58,000 --> 00:49:59,001 40, 60, the number of... 917 00:50:00,001 --> 00:50:01,001 There's a lot of space there. 918 00:50:02,000 --> 00:50:05,000 So I haven't really worried much about the number of codes. 919 00:50:08,001 --> 00:50:15,000 I want to solve it all, but I had to turn in the thesis at some point. 920 00:50:19,000 --> 00:50:21,001 So multiple of these spreading channels to solve a problem of 921 00:50:21,001 --> 00:50:23,000 people sending in multiple packets within time. 922 00:50:23,000 --> 00:50:25,000 And then the remaining collisions are 923 00:50:25,000 --> 00:50:27,000 those which are caused by your own transmitter. 924 00:50:27,000 --> 00:50:32,000 And I'm going to show you a scheduling method right now after the slide. 925 00:50:32,001 --> 00:50:33,000 How do I do that? 926 00:50:33,001 --> 00:50:38,001 Maybe six, maybe eight. 927 00:50:40,000 --> 00:50:40,001 And GPS... 928 00:50:40,001 --> 00:50:45,000 I mean, once you actually go to VLSI and you're not actually trying to do it all 929 00:50:45,000 --> 00:50:48,000 digitally... ...but you actually got analog circuits with buckets of integrate 930 00:50:48,000 --> 00:50:50,000 and dump and everything... ...it's not 931 00:50:50,000 --> 00:50:51,001 hard to replicate these spreading channels. 932 00:50:53,001 --> 00:50:55,001 You can share all the receiver front end. 933 00:50:59,000 --> 00:51:00,001 Now, power control... 934 00:51:02,000 --> 00:51:05,000 The method I wound up using, sort of... 935 00:51:05,000 --> 00:51:07,000 It was an ad hoc choice, but it turned out to work really well. 936 00:51:07,001 --> 00:51:11,001 And the simulation I sort of believe in is to choose a power level to deliver to 937 00:51:11,001 --> 00:51:14,000 the receiver... ...and then adjust the transmitter level to do that. 938 00:51:14,001 --> 00:51:17,001 And the stations will somehow rendezvous and learn where each other are. 939 00:51:17,001 --> 00:51:20,001 They can measure the propagation characteristics between 940 00:51:20,001 --> 00:51:22,000 them and then adjust appropriately. 941 00:51:22,001 --> 00:51:28,000 And so actually, in my simulations, I controlled power to deliver minus 120 942 00:51:28,000 --> 00:51:32,000 dBw... ...and to the receiver at the far end. 943 00:51:33,000 --> 00:51:33,001 Assuming isotropic... 944 00:51:33,001 --> 00:51:36,000 I mean, I also used isotropic antennas to handle anything. 945 00:51:36,001 --> 00:51:40,000 You know, it really doesn't matter because... 946 00:51:40,000 --> 00:51:41,000 Well, I'll show you something in a moment. 947 00:51:41,001 --> 00:51:43,001 And then how to do routing... 948 00:51:44,001 --> 00:51:49,000 Actually, Phil Carnes' paper in 1991 mentions minimum energy routing... ...and 949 00:51:49,000 --> 00:51:51,000 credits it to Dave Mills, who's on the faculty at Maryland. 950 00:51:52,001 --> 00:51:55,001 And Dave Mills got this intuition from thinking about a whole bunch of 951 00:51:55,001 --> 00:51:58,001 satellites... ...that are trying to form a network and communicate. 952 00:51:59,001 --> 00:52:01,001 And that minimum energy routing is the right thing to do. 953 00:52:02,001 --> 00:52:05,000 And so that's what I started with. 954 00:52:06,000 --> 00:52:10,000 When I started sort of trying to design this system through... ...I 955 00:52:10,000 --> 00:52:11,001 thought, well, this is what I'm going to use for 956 00:52:11,001 --> 00:52:13,001 now... ... but there's probably something more optimum. 957 00:52:14,000 --> 00:52:16,001 And when I get to the end, I'll try to find... ...figure out what's better. 958 00:52:17,000 --> 00:52:19,000 And I'll get to that towards the end of the talk. 959 00:52:19,001 --> 00:52:23,001 But this is sort of a whole picture of what I'm expecting to do. 960 00:52:24,000 --> 00:52:27,001 Now, I'm going to talk about... ... avoid remaining collisions by scheduling 961 00:52:27,001 --> 00:52:29,001 and how that works. 962 00:52:30,000 --> 00:52:31,001 And this is how I do it. 963 00:52:34,000 --> 00:52:38,000 Before I tell you how I do it, though... ...you can open, like, the Burt Segges 964 00:52:38,000 --> 00:52:42,000 and Gallagher textbook... ...and turn to the chapter or section on packet radio 965 00:52:42,000 --> 00:52:44,000 networks... ... and it explains what a packet radio network is. 966 00:52:44,000 --> 00:52:47,000 I think it only goes through about three or four pages on packet radio networks. 967 00:52:47,001 --> 00:52:49,000 But it talks about the problem of collisions. 968 00:52:49,001 --> 00:52:53,000 And that the way you solve this is you figure out which nodes can hear each 969 00:52:53,000 --> 00:52:57,001 other... ...and guarantee that, you know, at any receiver only one transmitter 970 00:52:57,001 --> 00:53:00,000 is transmitting. 971 00:53:00,001 --> 00:53:03,000 You know, at the intended receiver, that receiver can only hear... ...the 972 00:53:03,000 --> 00:53:05,000 one transmitter that's sending to it. 973 00:53:05,000 --> 00:53:08,001 And all of...you know, you don't have any other adjacent nodes in the network. 974 00:53:09,000 --> 00:53:10,001 And that the way you solve that problem 975 00:53:10,001 --> 00:53:12,000 is you have synchronized clocks everywhere. 976 00:53:12,000 --> 00:53:15,000 You figure out what the topology is... ...and you come up with a master schedule 977 00:53:15,000 --> 00:53:17,001 that just repeats every once in a while... ...that everybody sticks to 978 00:53:17,001 --> 00:53:19,000 that says who can send to who when. 979 00:53:23,000 --> 00:53:25,001 And...I mean, I have a few problems with that. 980 00:53:25,001 --> 00:53:29,000 One is the idea that propagation is... ...you can view the whole thing as a 981 00:53:29,000 --> 00:53:30,001 node and edges sort of situation. 982 00:53:30,001 --> 00:53:32,000 I mean, it's more complicated than that. 983 00:53:33,001 --> 00:53:36,001 But the real problem is, is there are a million stations out 984 00:53:36,001 --> 00:53:38,000 there... ...do you ever think we can get them all synchronized? 985 00:53:38,001 --> 00:53:41,001 And even if we could get them all synchronized. .. ...do you think we could do the 986 00:53:41,001 --> 00:53:44,000 computation to figure out what the master schedule 987 00:53:44,000 --> 00:53:45,001 is... ...and get it out to everybody? 988 00:53:46,000 --> 00:53:50,001 What I want is I want... ... I'd rather not have the system 989 00:53:50,001 --> 00:53:52,001 depend on GPS continuing to work. 990 00:53:54,000 --> 00:53:55,001 So...that's the GPS problem. 991 00:53:56,000 --> 00:53:59,000 So even if we could get them synchronized... ...I still don't have much 992 00:53:59,000 --> 00:54:01,000 confidence in being able to get a master schedule out to everybody. 993 00:54:01,000 --> 00:54:05,001 And these master schedules have the property that... ...the fact that 994 00:54:05,001 --> 00:54:10,001 connectivity has changed 30 hops away from you. .. ...affects everybody and then 995 00:54:10,001 --> 00:54:13,001 all the constraints keep propagating... ...and you wind up having to change the 996 00:54:13,001 --> 00:54:15,000 schedule globally for every little change. 997 00:54:15,001 --> 00:54:19,000 And people have tried to tackle that, but I wanted something simpler. 998 00:54:19,001 --> 00:54:21,000 How do people do that type of schedule? 999 00:54:22,001 --> 00:54:24,000 I'm busy now, I'll come back in an hour. 1000 00:54:24,001 --> 00:54:25,001 That's kind of what I was thinking about. 1001 00:54:26,001 --> 00:54:27,000 Yeah. 1002 00:54:28,001 --> 00:54:31,000 Well, I'll tell you what I came up with. 1003 00:54:33,000 --> 00:54:35,000 It wasn't the slide I expected. 1004 00:54:37,001 --> 00:54:39,000 I thought I had another slide here. 1005 00:54:41,001 --> 00:54:42,001 Maybe...no, this is the one. 1006 00:54:46,000 --> 00:54:52,001 Every station generates a pseudo-random schedule of... ...when it will transmit 1007 00:54:52,001 --> 00:54:57,000 and when it will receive... ...off into the future. 1008 00:55:01,001 --> 00:55:03,001 No, no. I now...I lay down. 1009 00:55:04,001 --> 00:55:08,001 At this time I will be transmitting, at this time I will be listening, at this 1010 00:55:08,001 --> 00:55:10,000 time I will be transmitting, at this time I will be listening. 1011 00:55:11,000 --> 00:55:12,000 But you make it pseudo-random. 1012 00:55:12,001 --> 00:55:16,000 The reason you make it pseudo-random is if I just said, okay, during odd seconds 1013 00:55:16,000 --> 00:55:20,001 I will transmit... ...and during even seconds I will receive... ...then you have 1014 00:55:20,001 --> 00:55:24,001 the problem that somebody next to me can do that... ...then you have the problem 1015 00:55:24,001 --> 00:55:26,000 that you have eight type A stations and type 1016 00:55:26,000 --> 00:55:28,000 B stations and not everybody can talk to everybody. 1017 00:55:28,000 --> 00:55:32,000 If they're making them pseudo-random, then everybody...then there will 1018 00:55:32,000 --> 00:55:33,001 be a chance in the future. 1019 00:55:34,000 --> 00:55:35,001 You know, for any pair of stations there will be 1020 00:55:35,001 --> 00:55:37,000 times when they can each talk to each other. 1021 00:55:45,000 --> 00:55:46,001 Well, there will be times. 1022 00:55:47,000 --> 00:55:52,000 So, you do a pseudo-random schedule off into the future. 1023 00:55:52,001 --> 00:55:55,000 I do a pseudo-random schedule off into the future. 1024 00:55:55,001 --> 00:55:57,000 There will be times when your schedule and my 1025 00:55:57,000 --> 00:55:58,001 schedule says you transmit, I transmit. 1026 00:55:59,000 --> 00:56:01,001 And there will be times in the future where it says you receive, I receive. 1027 00:56:01,001 --> 00:56:03,001 But there will be other times when it says you transmit, I receive. 1028 00:56:03,001 --> 00:56:05,000 And there will be other times when it says vice versa. 1029 00:56:06,000 --> 00:56:09,001 You accept that there are going to be conflicts in those pseudo-rands. 1030 00:56:09,001 --> 00:56:12,000 Right. There will be times when I cannot transmit to you. 1031 00:56:12,001 --> 00:56:15,000 There will be times when neither of us can talk to each other. 1032 00:56:15,000 --> 00:56:17,000 All these cases know that neither is scheduled. 1033 00:56:18,000 --> 00:56:19,000 Right. And so what you do... 1034 00:56:19,000 --> 00:56:23,001 And all you need to do is get this schedule to the neighbor 1035 00:56:23,001 --> 00:56:25,000 that you want to communicate with directly. 1036 00:56:26,000 --> 00:56:30,000 And by doing it this way, that has no impact on, you know, if I hand you a 1037 00:56:30,000 --> 00:56:32,000 schedule and you hand me my schedule. 1038 00:56:32,001 --> 00:56:35,001 So now we've had an interaction and now we can talk to each other. 1039 00:56:36,000 --> 00:56:41,000 And what we've done to arrange to talk to each other has no impact on your 1040 00:56:41,000 --> 00:56:43,000 negotiations with somebody else. 1041 00:56:43,000 --> 00:56:44,001 In fact, there's no negotiations. You just 1042 00:56:44,001 --> 00:56:46,000 tell your neighbor what your schedule is. 1043 00:56:46,000 --> 00:56:47,001 Oh, you have to transmit. 1044 00:56:49,000 --> 00:56:49,001 [...] 1045 00:56:50,000 --> 00:56:51,001 You only have to transmit three. 1046 00:56:51,001 --> 00:56:55,000 Well, yes. I'll get to that. Two more slides. 1047 00:56:55,001 --> 00:56:58,001 So I have a picture. Now, I don't... 1048 00:56:58,001 --> 00:57:02,001 I'm not even assuming that we have slot times synchronized. 1049 00:57:03,001 --> 00:57:08,000 You may think your watch may have the seconds starting... 300 milliseconds after 1050 00:57:08,000 --> 00:57:10,000 my watch. That's okay. 1051 00:57:11,000 --> 00:57:14,000 As long as when I communicate the schedule to you, you understand on 1052 00:57:14,000 --> 00:57:16,000 what time base I'm getting that on. 1053 00:57:16,000 --> 00:57:18,001 And then you can reckon it by your time base and figure 1054 00:57:18,001 --> 00:57:20,000 out where the opportunities are. 1055 00:57:20,001 --> 00:57:24,000 So here's a bunch of schedules and actually it's a little small, 1056 00:57:24,001 --> 00:57:27,000 but they're not synchronized. 1057 00:57:28,001 --> 00:57:31,001 But if you want to send a packet, you can find a spot. 1058 00:57:33,000 --> 00:57:39,000 You might have to wait a while, you know, but you'll be able to find a spot. 1059 00:57:39,001 --> 00:57:42,001 What are the ramifications on real time? 1060 00:57:42,001 --> 00:57:46,000 Delay. At the very end, I'll plug in some numbers. 1061 00:57:47,001 --> 00:57:51,000 The thesis has some formulas you can like plug in your own parameters for a 1062 00:57:51,000 --> 00:57:52,001 system and figure out what the delays are. 1063 00:57:53,000 --> 00:57:55,001 I'll plug in... I'll show you some results of plugged in numbers at the end. 1064 00:57:57,001 --> 00:57:59,000 So that's the pseudo random scheduling method. 1065 00:57:59,001 --> 00:58:03,001 Everybody generates a random schedule and just hands that. 1066 00:58:03,001 --> 00:58:08,000 Now, the implementation trick for that is all stations use the same schedule. 1067 00:58:10,000 --> 00:58:13,001 But everybody sets their clock to a random value when they turn on. 1068 00:58:14,000 --> 00:58:15,000 Now, you may be concerned about... 1069 00:58:16,000 --> 00:58:20,000 And then all you have to do is hand what your clock is to your neighbor. 1070 00:58:20,000 --> 00:58:23,001 And now you know what the offset is to what time your neighbor thinks it is. 1071 00:58:25,001 --> 00:58:28,001 And you remember that and then you can tell what the schedule is. 1072 00:58:28,001 --> 00:58:31,000 And maybe your clocks run at slightly different rates. 1073 00:58:31,000 --> 00:58:33,000 Well, that's something you can model as well. 1074 00:58:33,001 --> 00:58:36,001 If my clock's running faster and I've swapped time with you a few times, 1075 00:58:36,001 --> 00:58:38,000 then you can actually set a line to that. 1076 00:58:38,001 --> 00:58:40,001 And maybe your crystal's aging at a different rate than mine. 1077 00:58:41,000 --> 00:58:43,000 Well, you subtract those and you get a quadratic. 1078 00:58:43,000 --> 00:58:46,000 And you put a quadratic to that and then you can get amazing 1079 00:58:46,000 --> 00:58:48,000 stability that lasts over days maybe. 1080 00:58:48,001 --> 00:58:49,001 But you don't even need to do that. 1081 00:58:49,001 --> 00:58:51,001 I mean, or you could just track me. 1082 00:58:52,000 --> 00:58:54,000 You know, when we re-run these over as we 1083 00:58:54,000 --> 00:58:56,000 communicate, you can sort of figure out where I'm going. 1084 00:58:58,001 --> 00:59:04,000 Now, you may be concerned that, well, what if we set our clock to the same value? 1085 00:59:05,000 --> 00:59:09,000 Well, you can just make enough high order bits in the clock to push the 1086 00:59:09,000 --> 00:59:11,001 probability of that happening arbitrarily low. 1087 00:59:12,001 --> 00:59:18,000 If we exchange 64-bit clocks, the chances that we actually, you know, got close 1088 00:59:18,000 --> 00:59:23,000 enough to worry about overlapping exactly, you know, synchronizing our 1089 00:59:23,000 --> 00:59:24,001 schedules anytime soon is very low. 1090 00:59:25,000 --> 00:59:28,001 And all you really care, you don't care about if somebody across town 1091 00:59:28,001 --> 00:59:30,000 is exactly on your same schedule. 1092 00:59:30,000 --> 00:59:30,001 That doesn't matter. 1093 00:59:30,001 --> 00:59:33,001 All that matters is that about the six or so people that you're in direct 1094 00:59:33,001 --> 00:59:37,000 communication with didn't happen to land on the same schedule. 1095 00:59:37,001 --> 00:59:38,001 Well, here's the notion. 1096 00:59:39,001 --> 00:59:44,001 When you initially plug in, maybe you could select clock values of all neighbors 1097 00:59:44,001 --> 00:59:47,001 you hear and then figure out an appropriate clock 1098 00:59:47,001 --> 00:59:49,000 value for yourself based on that. 1099 00:59:49,001 --> 00:59:51,000 Yeah, but then you have the problem somebody else shows up. 1100 00:59:51,001 --> 00:59:53,001 It's easy just to add bits to the left of the clock. 1101 00:59:54,001 --> 00:59:58,000 Every new bit you get is only one more bit to hand to your neighbor, but it 1102 00:59:58,000 --> 00:59:59,001 produces the probability by two. 1103 01:00:00,000 --> 01:00:04,000 If you [...] in for them, there are a backhand direction on that one. 1104 01:00:05,000 --> 01:00:08,000 So the reality is everybody wouldn't have a comparison. 1105 01:00:09,000 --> 01:00:11,001 You can, it's a birthday paradox sort of thing. 1106 01:00:12,000 --> 01:00:15,000 You can actually put enough bits at the left so that no two in the world never 1107 01:00:15,000 --> 01:00:17,001 get close enough to each other, and you could actually make a bet on that. 1108 01:00:19,000 --> 01:00:22,000 I mean, you can't guarantee, because mathematically it's still possible, that 1109 01:00:22,000 --> 01:00:24,000 you can actually make the bet. 1110 01:00:24,000 --> 01:00:26,000 It's like the probabilistic test to test 1111 01:00:26,000 --> 01:00:28,000 whether a number is prime when they do cryptography. 1112 01:00:28,000 --> 01:00:33,001 They don't really ever quite prove that you're using a prime number to build your 1113 01:00:33,001 --> 01:00:35,001 key for RSA encryption. 1114 01:00:36,000 --> 01:00:41,000 But you can be so sure that, you know, you can be as sure as you like. 1115 01:00:41,000 --> 01:00:44,001 Just by every time you run the test again, the test runs quickly. 1116 01:00:45,000 --> 01:00:47,001 So that's the implementation trick. 1117 01:00:47,001 --> 01:00:50,000 Now, there's a question that is, well, okay, when you generate these pseudo 1118 01:00:50,000 --> 01:00:53,000 -random schedules, actually I've said everybody's going to use the same schedule. 1119 01:00:53,000 --> 01:00:57,001 So when we figure out what that one schedule is, what fraction of the slot should 1120 01:00:57,001 --> 01:01:01,001 be received, and what fraction of the slot should be transmitted? 1121 01:01:04,000 --> 01:01:08,001 And, well, I think of this as the received duty cycle. 1122 01:01:08,001 --> 01:01:10,000 What fraction of the slots are received slots? 1123 01:01:10,001 --> 01:01:11,001 I call that P. 1124 01:01:13,000 --> 01:01:18,000 And the fraction of time that I can send to a particular neighbor, if it's a good 1125 01:01:18,000 --> 01:01:21,000 hash function that generates the pseudo-random schedule, then you can think of 1126 01:01:21,000 --> 01:01:22,001 them as independent events. 1127 01:01:23,000 --> 01:01:25,001 And so you can do this sort of simple probabilistic analysis. 1128 01:01:26,000 --> 01:01:31,001 So the fraction of time you can send to a particular neighbor is the probability 1129 01:01:31,001 --> 01:01:36,000 that your neighbor is listening, which is P, the chance that it's a received 1130 01:01:36,000 --> 01:01:37,001 duty cycle, at any given moment. 1131 01:01:39,001 --> 01:01:45,001 And the probability that you're in a transmit slot, which is 1 minus P. 1132 01:01:47,000 --> 01:01:48,000 You multiply those two together. 1133 01:01:49,000 --> 01:01:54,001 And then there's actually a formula, skipping over some algebra. 1134 01:01:55,000 --> 01:01:58,001 So you can say, well, what fraction of the time is it 1135 01:01:58,001 --> 01:02:00,001 possible to send to a neighbor? 1136 01:02:00,001 --> 01:02:05,000 Assume you have traffic for all your neighbors, and you want to know, well, how 1137 01:02:05,000 --> 01:02:08,001 much can I keep my transmitter going? 1138 01:02:10,000 --> 01:02:11,001 And that's the formula here. 1139 01:02:11,001 --> 01:02:14,001 And it's basically, the fraction of time you can spend transmitting to your 1140 01:02:14,001 --> 01:02:20,001 neighbors is the fraction of time that your schedule says you can transmit, minus 1141 01:02:20,001 --> 01:02:27,000 the probability that you're a transmitter, that your schedule says transmit, 1142 01:02:27,000 --> 01:02:29,001 and everybody else's schedule says transmit. 1143 01:02:30,000 --> 01:02:32,000 And that's why it's K plus 1 for K neighbors. 1144 01:02:34,000 --> 01:02:40,001 And so what I've got on the next chart is a plot of this for various values of K. 1145 01:02:43,000 --> 01:02:49,001 This is the fraction of time you can spend sending to a neighbor for received 1146 01:02:49,001 --> 01:02:52,000 duty cycles from 0 all the way to 1. 1147 01:02:54,001 --> 01:02:58,001 And if you only have one neighbor, then the best value to pick is 1148 01:02:58,001 --> 01:03:00,001 50% received duty cycle. 1149 01:03:01,000 --> 01:03:04,001 And that means the fraction of time you can send to him is 1 fourth, and the 1150 01:03:04,001 --> 01:03:07,000 fraction of time that he can send to you is also 1 fourth. 1151 01:03:08,001 --> 01:03:11,001 If you have two neighbors, you get a curve that looks like this. 1152 01:03:12,000 --> 01:03:15,001 This is the fraction of time that you can send to, it's the or of the two. 1153 01:03:15,001 --> 01:03:18,000 When can I send to this neighbor, and when can I send to that neighbor? 1154 01:03:18,000 --> 01:03:19,001 When can I send to either of them? 1155 01:03:20,001 --> 01:03:22,001 You know, is at least one or both listening. 1156 01:03:23,001 --> 01:03:24,000 And that's this curve. 1157 01:03:24,001 --> 01:03:26,000 When you go to three, you get this curve. 1158 01:03:26,000 --> 01:03:28,000 When you go to four, you get this curve. 1159 01:03:28,001 --> 01:03:31,001 And the top curve there is 20, but it kind of turns into a 1160 01:03:31,001 --> 01:03:33,000 triangle as you go off to many neighbors. 1161 01:03:33,000 --> 01:03:38,001 And I'm thinking that, you know, it's probably around six neighbors or something. 1162 01:03:39,000 --> 01:03:40,000 So somewhere in here. 1163 01:03:40,001 --> 01:03:44,001 Now the observation to make is, well, all we really wanted to do was pick a 1164 01:03:44,001 --> 01:03:46,001 received duty cycle here, because we're going to have 1165 01:03:46,001 --> 01:03:48,000 one master schedule for the whole system. 1166 01:03:49,000 --> 01:03:54,001 And notice that if we pick a value of 0. 3, or maybe 0.33 or something, somewhere 1167 01:03:54,001 --> 01:03:58,000 around right in here, I think what I used in the rest of the 1168 01:03:58,000 --> 01:03:59,001 simulations is actually 0.3. 1169 01:03:59,001 --> 01:04:03,001 If you pick 0. 3, you can ask, well, how far down are we from 1170 01:04:03,001 --> 01:04:05,000 the optimum in this case? 1171 01:04:05,001 --> 01:04:10,000 And we're already up to 20% here, so we're only at about 0.3. 1172 01:04:10,001 --> 01:04:15,000 So we're only, we're more or less about as good as we could have gotten, even 1173 01:04:15,000 --> 01:04:17,001 though we're only at 0.3 instead of 0.5. 1174 01:04:18,000 --> 01:04:20,000 And in the two case, well, we're right here. 1175 01:04:20,000 --> 01:04:21,001 Well, that's pretty close to the top two. 1176 01:04:21,001 --> 01:04:23,000 And in the three case, you're pretty close. 1177 01:04:23,000 --> 01:04:23,001 That's about right here. 1178 01:04:24,000 --> 01:04:25,000 And the four case, you're pretty right here. 1179 01:04:25,001 --> 01:04:27,001 And if you have to get around six, you're about the right place. 1180 01:04:28,000 --> 01:04:31,000 So it doesn't really matter much what you pick down here. 1181 01:04:31,000 --> 01:04:35,001 Something around 0.3 gets you pretty close to optimal in all the cases. 1182 01:04:37,000 --> 01:04:38,001 And that's the received duty cycle, and 1183 01:04:38,001 --> 01:04:40,000 the transmit duty cycle is whatever's left. 1184 01:04:40,001 --> 01:04:43,000 So you listen about 30% of the time, and you 1185 01:04:43,000 --> 01:04:45,000 schedule your hand to your neighbors. 1186 01:04:46,000 --> 01:04:48,001 The schedule of your hand to your neighbors is really a promise of when you're 1187 01:04:48,001 --> 01:04:50,001 going to be listening, because that's all they really care about. 1188 01:04:50,001 --> 01:04:56,000 So you have about a third of, or 0. 30% of the time slots 1189 01:04:56,000 --> 01:04:57,001 in the future scheduled as received slots. 1190 01:04:58,001 --> 01:05:02,001 Now, of course, there's also a notion here of clusters 1191 01:05:02,001 --> 01:05:04,000 of overlap neighbors, right? 1192 01:05:05,000 --> 01:05:07,001 You might have six neighbors here, and the next six neighbors 1193 01:05:07,001 --> 01:05:09,001 here partially overlap, right? 1194 01:05:10,001 --> 01:05:12,000 Each station has their own view of the net. 1195 01:05:12,001 --> 01:05:13,000 Right. 1196 01:05:16,001 --> 01:05:17,000 So... 1197 01:05:23,001 --> 01:05:24,001 ...perhaps, yes. 1198 01:05:25,001 --> 01:05:28,001 You may not actually turn your transmitter on unless you actually have something 1199 01:05:28,001 --> 01:05:31,000 to send, and that depends on the traffic load, and that's sort of a... 1200 01:05:35,000 --> 01:05:35,000 ...what? 1201 01:05:37,000 --> 01:05:38,000 Vertical axis is... 1202 01:05:38,000 --> 01:05:41,001 Is the fraction of time that you can spend transmitting. 100%, 1203 01:05:41,001 --> 01:05:43,000 80%, 60%, 40%, 20%. 1204 01:05:44,000 --> 01:05:47,001 The fraction of time you can spend transmitting and do something useful. 1205 01:05:48,000 --> 01:05:50,001 I mean, the fraction of time you can spend transmitting is just a line that runs 1206 01:05:50,001 --> 01:05:52,001 from this one up to this one. 1207 01:05:52,001 --> 01:05:55,000 One, you know, one minus P. 1208 01:05:56,000 --> 01:05:57,001 And that's why there's this limit here. 1209 01:05:57,001 --> 01:06:01,000 But it's not useful unless you've got at least one neighbor listening, and that's 1210 01:06:01,000 --> 01:06:03,001 the difference between this line and any particular curve we're on. 1211 01:06:09,000 --> 01:06:10,001 So, it's actually kind of weird. 1212 01:06:10,001 --> 01:06:13,000 I'm suggesting that you can spend more than half of the time transmitting 1213 01:06:13,001 --> 01:06:15,000 and less than half the time listening. 1214 01:06:17,000 --> 01:06:18,001 More than half of the time... 1215 01:06:19,000 --> 01:06:20,001 The closer you can get. 1216 01:06:20,001 --> 01:06:22,000 Yeah, you can actually... 1217 01:06:22,000 --> 01:06:26,001 If you have six neighbors, two, three, four, five, six, and at around 3% duty 1218 01:06:26,001 --> 01:06:30,000 cycle, you can actually have throughputs that are 60% duty cycles. 1219 01:06:31,000 --> 01:06:31,001 And that's kind of weird. 1220 01:06:31,001 --> 01:06:35,000 You're spending 60% of the time transmitting and only 40% of the time listening. 1221 01:06:35,000 --> 01:06:36,000 How can that possibly be? 1222 01:06:37,000 --> 01:06:38,001 Remember I said multiple of these spreading channels. 1223 01:06:39,001 --> 01:06:41,001 When you're sending, you're only sending one packet. 1224 01:06:44,000 --> 01:06:47,000 But when you're listening, you might be capturing multiple at a time. 1225 01:06:47,001 --> 01:06:50,000 That's similar to one of the things that a few years ago 1226 01:06:50,000 --> 01:06:52,000 was someone was proposing having that. 1227 01:06:52,000 --> 01:06:53,000 In case of your router. 1228 01:06:54,000 --> 01:06:57,001 And having one transmitter and multiple receivers. 1229 01:06:58,001 --> 01:06:59,001 That was it. 1230 01:07:00,001 --> 01:07:00,001 That was it. 1231 01:07:00,001 --> 01:07:01,001 I don't know what they called it. 1232 01:07:02,000 --> 01:07:02,001 I'll put the transport on. 1233 01:07:03,000 --> 01:07:03,001 [...] 1234 01:07:03,001 --> 01:07:04,000 We'll have to roll area. 1235 01:07:05,000 --> 01:07:05,001 Yeah. 1236 01:07:06,000 --> 01:07:06,001 Yeah, that's it. 1237 01:07:06,001 --> 01:07:07,001 What year was that? 1238 01:07:07,001 --> 01:07:08,000 I haven't seen that. 1239 01:07:08,001 --> 01:07:08,001 [...] 1240 01:07:11,001 --> 01:07:16,000 I just, at Dayton, I bought the whole proceedings for everything 1241 01:07:16,000 --> 01:07:17,001 from back to the first ECC. 1242 01:07:18,000 --> 01:07:20,000 And I didn't get up to that far. 1243 01:07:20,000 --> 01:07:22,000 I've only looked at the first five years. 1244 01:07:23,000 --> 01:07:24,001 We actually built a radio. 1245 01:07:26,000 --> 01:07:31,000 In fact, the Naval Research Lab actually built a network similar to that, using 1246 01:07:31,000 --> 01:07:33,000 21 a bit per second. 1247 01:07:33,000 --> 01:07:37,000 [...] I think the channel went UHF tax that and on HF. 1248 01:07:38,001 --> 01:07:43,000 And they actually were doing that low rate of voice at like 1249 01:07:43,000 --> 01:07:45,000 400 or 600 bits per second. 1250 01:07:45,000 --> 01:07:46,000 Was it a single channel? 1251 01:07:46,001 --> 01:07:47,000 [...] 1252 01:07:47,000 --> 01:07:47,001 It was a... 1253 01:07:47,001 --> 01:07:48,001 Single channel system? 1254 01:07:50,000 --> 01:07:50,000 Multiple, yeah. 1255 01:07:50,001 --> 01:07:53,001 Multiple, it was, each station had one transmitter. 1256 01:07:54,000 --> 01:07:55,000 It was on the air continuously. 1257 01:07:56,000 --> 01:07:59,001 It had like a router and you had multiple receivers feeding it in. 1258 01:07:59,001 --> 01:08:01,000 Must have been a multiple channel system. 1259 01:08:01,000 --> 01:08:02,000 [...] throughput system. 1260 01:08:03,000 --> 01:08:06,001 Yeah, that's a different, that's a whole different design place. 1261 01:08:06,001 --> 01:08:08,001 But it's not still because of what we're using 1262 01:08:08,001 --> 01:08:10,000 in current division instead of frequency. 1263 01:08:10,001 --> 01:08:11,000 [...] 1264 01:08:12,001 --> 01:08:14,000 I'll have to think about that. 1265 01:08:15,000 --> 01:08:17,000 It's actually, I think it's equivalent. 1266 01:08:21,000 --> 01:08:21,001 So... 1267 01:08:23,001 --> 01:08:24,000 So... 1268 01:08:24,001 --> 01:08:26,000 Let's return to this side briefly. 1269 01:08:26,001 --> 01:08:30,000 I sort of told you, I hope a little bit more of this is... 1270 01:08:31,000 --> 01:08:34,000 Avoid remaining collisions by scheduling. 1271 01:08:34,000 --> 01:08:36,000 I just told you about the collision, the scheduling method. 1272 01:08:37,001 --> 01:08:39,001 And I'm going to hand wave the rest of these issues 1273 01:08:39,001 --> 01:08:41,000 and start showing you simulation results. 1274 01:08:42,000 --> 01:08:48,000 I sort of wrote an ad hoc special purpose simulator to simulate the noise levels 1275 01:08:48,000 --> 01:08:50,000 or power levels in this kind of system. 1276 01:08:52,000 --> 01:08:52,001 And... 1277 01:08:53,000 --> 01:08:58,001 I wanted to see if, you know, doing the scheduling method and with a whole bunch 1278 01:08:58,001 --> 01:09:02,001 of stations and actually compute routes and actually send packets around whether 1279 01:09:02,001 --> 01:09:06,000 my signal to noise ratio analysis actually works when you 1280 01:09:06,000 --> 01:09:07,001 actually have real stations out there. 1281 01:09:07,001 --> 01:09:09,000 So it's sort of a power level simulator. 1282 01:09:09,001 --> 01:09:14,000 It simulates the transfer of packets and transmitter power levels and actually 1283 01:09:14,000 --> 01:09:18,000 records at the receiver, you know, the power contribution by that transmitter. 1284 01:09:18,001 --> 01:09:20,001 And then when the transmitter shuts off, it goes to the receiver and subtracts 1285 01:09:20,001 --> 01:09:23,000 out its contribution to the noise without receiver. 1286 01:09:23,000 --> 01:09:29,001 So at every receiver as a function of time, I've got what is the received total 1287 01:09:29,001 --> 01:09:31,001 power level in the channel. 1288 01:09:31,001 --> 01:09:35,000 Sort of before, you know, somebody asked Matt yesterday in his talk, do you mean 1289 01:09:35,000 --> 01:09:37,000 like a received signal strength indicator? 1290 01:09:37,001 --> 01:09:40,001 Well, it'd be like sort of the before de-spreading received signal strength 1291 01:09:40,001 --> 01:09:42,000 indicator is what I computed. 1292 01:09:42,000 --> 01:09:45,001 And then if you want to signal the noise ratio for a given transfer, this 1293 01:09:45,001 --> 01:09:50,000 barrier, you know, this summation, this sort of add in and then subtract out that 1294 01:09:50,000 --> 01:09:52,000 it is the station is sort of the total power. 1295 01:09:52,000 --> 01:09:55,000 And if you want to signal to noise ratio, you have to again subtract out your own 1296 01:09:55,000 --> 01:09:58,000 signal level because what, if you just take the signal level to that, you 1297 01:09:58,000 --> 01:09:59,001 get the signal to signal plus noise ratio. 1298 01:10:02,000 --> 01:10:05,001 So I place stations randomly in a square by just picking two 1299 01:10:05,001 --> 01:10:07,000 random numbers from the random number generator. 1300 01:10:07,001 --> 01:10:10,000 I computed minimum energy routes. 1301 01:10:11,001 --> 01:10:14,001 And what I've drawn on this picture are all the single hops 1302 01:10:14,001 --> 01:10:16,000 that any of the minimum energy routes use. 1303 01:10:17,000 --> 01:10:21,000 Now minimum energy routes have the property that if you have a route from B to C, 1304 01:10:23,000 --> 01:10:28,000 and the route from A to C goes through B, then the end of that route, once you 1305 01:10:28,000 --> 01:10:30,001 get to B, is the same as the route from B to C. 1306 01:10:31,001 --> 01:10:33,000 It's got to be that way. 1307 01:10:34,000 --> 01:10:39,000 So you can sort of think about, you know, so all you need to remember, minimum 1308 01:10:39,000 --> 01:10:42,000 energy routes, all you need to remember at any station is how to get there. 1309 01:10:42,000 --> 01:10:44,001 And then when the packet shows up, that's the way you send it. 1310 01:10:44,001 --> 01:10:47,000 You don't have to send it a different route depending on where it came 1311 01:10:47,000 --> 01:10:49,000 from, minimum energy route. 1312 01:10:49,000 --> 01:10:52,001 So I compute the routes, put a routing table at each station, 1313 01:10:53,000 --> 01:10:55,000 and then started playing with the simulator. 1314 01:10:57,000 --> 01:11:01,001 As I said, the length, the edges on this diagram between the random of the 1315 01:11:01,001 --> 01:11:03,000 playstations show where the 1316 01:11:03,000 --> 01:11:08,001 single hops are that are used by any route. 1317 01:11:10,000 --> 01:11:14,000 So I stared at some of these pictures, didn't really learn anything. 1318 01:11:15,001 --> 01:11:19,000 Are you thinking of it in context of like a metropolitan area network? 1319 01:11:19,001 --> 01:11:21,000 Absolutely, it was like about a million stations. 1320 01:11:22,000 --> 01:11:23,000 There's a hundred in this picture. 1321 01:11:25,000 --> 01:11:26,000 I'll get to a thousand in a minute. 1322 01:11:27,001 --> 01:11:33,000 I would imagine these are traditional methods for bridging that metropolitan 1323 01:11:33,000 --> 01:11:34,001 area network into a light area network. 1324 01:11:35,001 --> 01:11:37,000 Well, you'll have to have some probably... 1325 01:11:37,000 --> 01:11:39,000 That's going to be a collapse back on there. 1326 01:11:39,001 --> 01:11:43,000 Yeah, absolutely. Fiber, you know, some long-distance provider that you'll pay 1327 01:11:43,000 --> 01:11:44,001 for service from to get somewhere. 1328 01:11:44,001 --> 01:11:45,001 Could you go back one price? 1329 01:11:47,000 --> 01:11:49,001 That was the diagram of the... 1330 01:11:50,001 --> 01:11:54,001 Like, for example, what I'm looking at is the node right here, the center, the 1331 01:11:54,001 --> 01:11:57,000 55, the [...] that guy. 1332 01:11:57,001 --> 01:12:00,001 Now, if everybody wants to talk to everybody equally, don't you have an infinite 1333 01:12:00,001 --> 01:12:02,001 amount of traffic going through every node? 1334 01:12:04,000 --> 01:12:05,000 Infinite going through? 1335 01:12:06,000 --> 01:12:07,000 I'll get to that. 1336 01:12:08,000 --> 01:12:10,000 Actually, I'll get to that in a thousand stations. 1337 01:12:11,000 --> 01:12:12,001 There's actually more discussion about that 1338 01:12:12,001 --> 01:12:14,000 in the thesis I'm probably not going to get into. 1339 01:12:18,001 --> 01:12:22,000 You're worrying about exactly the right thing and... 1340 01:12:22,000 --> 01:12:23,000 I'm very excited. 1341 01:12:23,000 --> 01:12:26,001 And when I started looking at the simulation results, exactly what you're worried 1342 01:12:26,001 --> 01:12:29,000 about was in fact a problem, and 1343 01:12:29,000 --> 01:12:30,001 I haven't completely figured out how to solve it yet. 1344 01:12:31,000 --> 01:12:32,000 So you're on the right track. 1345 01:12:32,000 --> 01:12:35,000 The ball I'm posting is my neighbor's. You got a fantastic system. 1346 01:12:35,001 --> 01:12:37,001 Well, I'll wave my hands at the end of the talk. 1347 01:12:38,000 --> 01:12:40,000 I was going to... maybe it may relate to the same question. 1348 01:12:40,000 --> 01:12:44,000 I was going to want to... did you look at, say, varying the mix of 1349 01:12:44,000 --> 01:12:46,000 unicast versus multicast traffic? 1350 01:12:46,000 --> 01:12:48,000 I have...I have... 1351 01:12:48,000 --> 01:12:50,000 I forget what... 1352 01:12:53,000 --> 01:12:55,000 I'm going to read you the last sentence in the last 1353 01:12:55,000 --> 01:12:56,001 chapter of my thesis, or the last two. 1354 01:12:59,001 --> 01:13:00,001 Just a... 1355 01:13:00,001 --> 01:13:03,001 That's the question I was wondering whether multicast and...the 1356 01:13:03,001 --> 01:13:05,001 minimum range of routing still... 1357 01:13:05,001 --> 01:13:08,000 The last sentence was... ... still the optimal range of routing. 1358 01:13:08,000 --> 01:13:11,001 You know, where I ended my thesis was I said, after talking about a whole bunch 1359 01:13:11,001 --> 01:13:16,000 of issues, I said, these questions, these questions again depend on routing and 1360 01:13:16,000 --> 01:13:19,000 demand for service, questions that are difficult to determine before real users 1361 01:13:19,000 --> 01:13:21,000 are involved in the generation of traffic. 1362 01:13:22,000 --> 01:13:22,001 I don't know. 1363 01:13:25,001 --> 01:13:28,001 But I'll wave my hands at another picture that might actually 1364 01:13:28,001 --> 01:13:30,000 be able to get you excited. 1365 01:13:30,000 --> 01:13:32,000 That's why I wanted to show one of the notion on the 1366 01:13:32,000 --> 01:13:33,001 table here, and that's a deployment issue. 1367 01:13:36,001 --> 01:13:40,000 Obviously, there's got to be a consideration for the distance between 1368 01:13:40,000 --> 01:13:42,000 your initial stations. 1369 01:13:42,001 --> 01:13:44,000 What's the...you copy a man... 1370 01:13:44,001 --> 01:13:45,000 Yeah, what is... 1371 01:13:45,000 --> 01:13:47,000 There's two different... ...fringence of that man. 1372 01:13:47,000 --> 01:13:50,000 If you only have two stations, how far apart can they can be when you 1373 01:13:50,000 --> 01:13:52,000 initially put them up, and then you'll fill in. 1374 01:13:53,000 --> 01:13:53,001 Absolutely. 1375 01:13:55,001 --> 01:14:00,000 So, I think I said what was on this slide before I put up the last slide. 1376 01:14:01,000 --> 01:14:03,001 But I explicitly reported the contribution to the noise level at each 1377 01:14:03,001 --> 01:14:05,000 receiver for each transmission. 1378 01:14:08,000 --> 01:14:11,001 And I...by record, I mean I added into the total there, and when the 1379 01:14:11,001 --> 01:14:13,000 transmitter ends, I subtract it out again. 1380 01:14:13,001 --> 01:14:15,001 So there's a...I've got a variable for each 1381 01:14:15,001 --> 01:14:17,000 station, which is the current received. 1382 01:14:18,000 --> 01:14:22,000 There's a vent queue driven for the traffic, so you can simulate, you know... 1383 01:14:23,000 --> 01:14:25,000 I'm starting to send a packet, and I know the packet 1384 01:14:25,000 --> 01:14:27,000 is this long, so it's going to... 1385 01:14:27,000 --> 01:14:29,001 The transmission is going to end at this time in the future. 1386 01:14:30,000 --> 01:14:33,001 It schedules an event in the event queue, which is a heat priority queue, so it 1387 01:14:33,001 --> 01:14:36,001 only takes long time to extract an event out of it. 1388 01:14:37,000 --> 01:14:40,001 It's only logged in the size of the queue, so it's a standard sort of 1389 01:14:40,001 --> 01:14:42,000 event driven network simulator. 1390 01:14:43,001 --> 01:14:49,001 And for each...when a station is actually receiving a packet, it's also 1391 01:14:49,001 --> 01:14:55,001 got something which is taking sort of the max of the noise level, so that you can 1392 01:14:55,001 --> 01:14:59,000 find the NIV of the signal to noise ratio at the end of the reception of the 1393 01:14:59,000 --> 01:15:03,000 packet, and record what that was, and decide whether or not 1394 01:15:03,000 --> 01:15:04,001 that packet reception was successful. 1395 01:15:06,000 --> 01:15:10,001 Now, in the simulations I'm going to talk about today, I... 1396 01:15:12,001 --> 01:15:14,000 Do you need to piece that one more time? 1397 01:15:17,001 --> 01:15:23,001 The simulator has, at every station, a variable which is the current noise total 1398 01:15:23,001 --> 01:15:25,001 power level coming from all the other stations. 1399 01:15:26,001 --> 01:15:29,001 Actually, I initialized that variable with the thermal noise level, but I could 1400 01:15:29,001 --> 01:15:31,001 have initialized it with zero, and I would have gotten the same result 1401 01:15:31,001 --> 01:15:34,000 in the simulations, because that's far enough away. 1402 01:15:34,000 --> 01:15:41,000 So, that variable, I'm also... during the reset, while a station is 1403 01:15:41,000 --> 01:15:46,000 receiving a packet, I record for that packet what the max of this variable 1404 01:15:46,000 --> 01:15:48,000 was, which is the total power level. 1405 01:15:48,001 --> 01:15:52,000 So that when the event happens, it marks the end of the reception of a 1406 01:15:52,000 --> 01:15:53,001 packet in the simulator. 1407 01:15:54,000 --> 01:15:58,000 I can then go look at what the max noise level was during the reception of this 1408 01:15:58,000 --> 01:15:59,001 packet, compute the signal level for that packet, and 1409 01:15:59,001 --> 01:16:01,001 that's the signal to noise ratio for that packet. 1410 01:16:03,000 --> 01:16:06,000 That's the worst signal to noise ratio experience during 1411 01:16:06,000 --> 01:16:08,001 the reception time of this packet. 1412 01:16:09,000 --> 01:16:13,000 Are you going to take that one step further and actually make that variable 1413 01:16:13,000 --> 01:16:15,001 available in the real production unit, or... 1414 01:16:16,001 --> 01:16:18,000 Does that sound like a useful thing to do? 1415 01:16:18,001 --> 01:16:20,001 I don't know. I haven't fully thought 1416 01:16:20,001 --> 01:16:22,000 about exactly what a real production unit was. 1417 01:16:22,000 --> 01:16:25,000 This is for the purpose of understanding whether my signal to noise ratio 1418 01:16:25,000 --> 01:16:27,001 calculations were correct earlier. 1419 01:16:28,000 --> 01:16:32,000 I have no particular designs, plans to build any particular piece of hardware 1420 01:16:32,000 --> 01:16:33,001 at this moment, so I would love to build some hardware. 1421 01:16:34,001 --> 01:16:40,000 Yeah. So, now I call it... there's all sorts of constants. 1422 01:16:40,001 --> 01:16:42,001 I actually went through the simulator and tried 1423 01:16:42,001 --> 01:16:44,000 to actually get all the constants right. 1424 01:16:44,000 --> 01:16:49,000 I assumed isotropic antennas and actually figured out what the propagation 1425 01:16:49,000 --> 01:16:50,001 is based on isotropic antennas. 1426 01:16:51,000 --> 01:16:54,000 And so if you put it, you know, have antennas of some, you know, on the antennas 1427 01:16:54,000 --> 01:16:59,000 with like three or five dB of gain, that would be different. I plugged in all the 1428 01:16:59,000 --> 01:17:01,001 numbers for the 902 to 928 MHz band. 1429 01:17:01,001 --> 01:17:04,000 It assumed it's 26 MHz wide and we're using all of that. 1430 01:17:04,001 --> 01:17:09,000 So the sort of noise bandwidth before the spreading is 26 MHz wide, 1431 01:17:09,001 --> 01:17:15,001 which is the signal to noise ratio computation that I make. 1432 01:17:17,000 --> 01:17:21,001 And I assumed...now the scheduling method, I assumed 64 slots per second. 1433 01:17:21,001 --> 01:17:26,000 And actually I skipped over how you actually find the place a packet can sit in. 1434 01:17:26,000 --> 01:17:31,000 And I assumed fault small or fixed by packets of some size 1435 01:17:31,000 --> 01:17:33,000 without actually specifying a data rate. 1436 01:17:33,000 --> 01:17:36,000 So I'm actually just saying a time and the data rate we can get depends on the 1437 01:17:36,000 --> 01:17:39,000 processing gain that we need, which... and that'll determine 1438 01:17:39,000 --> 01:17:41,000 how many bits you can send in a packet. 1439 01:17:42,001 --> 01:17:44,000 But there are these things called sub slots. 1440 01:17:44,000 --> 01:17:50,000 So this is 1024 sub slots per slot, which means the packet is at most about 1441 01:17:50,000 --> 01:17:53,000 a millisecond long. 1442 01:17:53,001 --> 01:17:57,001 And a target power control of minus 120 dBw when I have power control turned on. 1443 01:18:00,001 --> 01:18:04,001 And I play with a bunch of stuff. The only simulations I wrote up in the thesis, 1444 01:18:05,001 --> 01:18:09,001 because they were the only ones that really informed anything, was this worst, 1445 01:18:09,001 --> 01:18:11,001 near worst case traffic load that I came up with. 1446 01:18:11,001 --> 01:18:15,001 I computed the routes to handle general traffic. I really have no idea 1447 01:18:15,001 --> 01:18:17,000 what traffic's going to be put on this. 1448 01:18:17,001 --> 01:18:19,001 But what I'm concerned about is, well, if it got really 1449 01:18:19,001 --> 01:18:21,001 bad, how bad would all the interference be? 1450 01:18:22,000 --> 01:18:24,001 And what I wanted to get is I wanted to get every station sort of sending 1451 01:18:24,001 --> 01:18:26,000 to all its neighbors as much as possible. 1452 01:18:27,000 --> 01:18:32,000 So coming back to this diagram of the network and the edges connecting them, if 1453 01:18:32,000 --> 01:18:36,000 you imagine any station here, and each station here has like four or five 1454 01:18:36,000 --> 01:18:38,000 edges off to some nearby neighbor, 1455 01:18:41,001 --> 01:18:48,001 then for each station in the net, pick one station, I schedule the packet to 1456 01:18:48,001 --> 01:18:52,001 each of its neighbors when the simulator initializes. 1457 01:18:53,000 --> 01:18:55,000 So every station starts out with one packet for each of its neighbors. 1458 01:18:55,001 --> 01:18:59,001 At the start time for transmission of each packet, I scheduled 1459 01:18:59,001 --> 01:19:01,001 another packet for that same neighbor. 1460 01:19:01,001 --> 01:19:03,001 And then it goes and finds a place in the 1461 01:19:03,001 --> 01:19:05,000 pseudo-random schedules where it can go. 1462 01:19:05,000 --> 01:19:10,000 So every station is always transmitting at any time it has a neighbor listening. 1463 01:19:11,001 --> 01:19:16,001 It's completely loaded. No opportunity. Now, the power level, if you turn on 1464 01:19:16,001 --> 01:19:19,000 power control, you're not always transmitting to your furthest neighbor. 1465 01:19:19,001 --> 01:19:24,000 So it's not entirely worst case. If you've got a, you know, it's sort of, you're 1466 01:19:24,000 --> 01:19:26,001 always transmitting to some neighbor, but if some of your neighbors are closer 1467 01:19:26,001 --> 01:19:28,001 than others, then your transmitter is not at the highest 1468 01:19:28,001 --> 01:19:30,000 level you ever run it at all the time. 1469 01:19:31,001 --> 01:19:33,001 Maybe I should do that simulation as well. 1470 01:19:33,001 --> 01:19:39,000 Does that mean like, you know, somebody's transmitting to your [...] for it? 1471 01:19:40,000 --> 01:19:42,000 No, the schedules are completely fixed. You have to fit the 1472 01:19:42,000 --> 01:19:43,001 packets in the schedules that are there. 1473 01:19:44,000 --> 01:19:51,000 So you have to, oh, okay. You can't, you can't send, you got 120 8-byte 1474 01:19:51,000 --> 01:19:55,001 packets, but then, and there's a few spots, 80 bytes long, you got an 80 byte 1475 01:19:55,001 --> 01:19:57,000 period, and wait for the next time. 1476 01:19:57,000 --> 01:20:01,000 Well, yeah, the way I probably, I don't know. Maybe the way I build the system 1477 01:20:01,000 --> 01:20:02,001 is I'd have a small, fixed-size cell. 1478 01:20:03,001 --> 01:20:08,001 Which is maybe one-fourth of a slot time. I think that's probably about right. 1479 01:20:10,000 --> 01:20:14,000 And towards the end of the panel for the chapter in the thesis are some formulas. 1480 01:20:14,000 --> 01:20:18,001 You can start plugging in what sizes of different things you want and see what 1481 01:20:18,001 --> 01:20:20,001 efficiencies you get in various pieces of the system. 1482 01:20:21,001 --> 01:20:27,000 Now here, what I have on this plot is, let me 1483 01:20:27,000 --> 01:20:29,000 think, which one, yeah, this one, okay. 1484 01:20:29,000 --> 01:20:36,000 This is, I just picked one of the stations in the net, actually, station 29, 1485 01:20:36,001 --> 01:20:40,001 which is this station that has three neighbors down here. 1486 01:20:40,001 --> 01:20:43,000 One of which is kind of nearby and two which are further away. 1487 01:20:45,001 --> 01:20:49,001 And I, what I have is here is a plot of received power level. 1488 01:20:50,001 --> 01:20:55,000 The thermal noise for 26 megahertz wide is around minus 150 dBw. 1489 01:20:57,001 --> 01:21:03,000 That's Boltzmann's constant times the temperature, 290 times 26 megahertz. 1490 01:21:04,000 --> 01:21:08,001 And so, you know, the, the, we're about 50 dB away from that, just 1491 01:21:08,001 --> 01:21:10,000 from the self-interference in the system. 1492 01:21:11,000 --> 01:21:14,000 What I've got on this axis is time, horizontal axis is time, and the vertical 1493 01:21:14,000 --> 01:21:16,001 axis here is received power level. 1494 01:21:17,000 --> 01:21:22,001 This is minus 60 dBw or a micro-lot, nano-lot, pico-lot. 1495 01:21:26,000 --> 01:21:28,001 And there's another little bit of hand waving here. 1496 01:21:31,000 --> 01:21:34,001 These, these tall spikes, when you see received power levels up around the micro 1497 01:21:34,001 --> 01:21:37,001 -lot, that's the station's own transmitter. 1498 01:21:39,000 --> 01:21:42,001 I forget the actual power level I had the transmitter running at, but it was on 1499 01:21:42,001 --> 01:21:46,000 the order of somewhere between 10 and 100 milliwatts, I think. 1500 01:21:47,000 --> 01:21:51,000 Actually, it's exactly 40 dB up from this because even though I think you can 1501 01:21:51,000 --> 01:21:55,000 only build isolators or duplexors with about 20 dB of isolation. 1502 01:21:56,001 --> 01:21:58,000 Circulators, sometimes people call them. 1503 01:21:58,000 --> 01:21:59,001 They're duplexors to telephony people. 1504 01:22:01,000 --> 01:22:01,001 That's right. 1505 01:22:05,000 --> 01:22:09,000 I first plugged in 20 dBw and all my simulations diverged. 1506 01:22:10,000 --> 01:22:12,001 And the problem is, is I initialize this variable. 1507 01:22:12,001 --> 01:22:19,000 I mean, this, but what happened is, is you, because a 1508 01:22:19,000 --> 01:22:25,001 round off error in IEEE floating point standard doubles, which only have 1509 01:22:25,001 --> 01:22:30,000 some, there's a footnote in the thesis about this. 1510 01:22:30,001 --> 01:22:33,000 There's only so many bits of mantissa. 1511 01:22:33,001 --> 01:22:37,001 And if you take a big thing, if you have a small thing and you add in a big 1512 01:22:37,001 --> 01:22:41,000 thing, and this just tracks the big thing out again, you might 1513 01:22:41,000 --> 01:22:43,000 not get exactly what you started with. 1514 01:22:43,001 --> 01:22:46,000 And if that starts creeping, then it runs away. 1515 01:22:47,000 --> 01:22:52,000 And I had to, there's only about 150 dB of dynamic range in the mantissa 1516 01:22:52,000 --> 01:22:54,000 of an IEEE floating point double. 1517 01:22:55,000 --> 01:22:56,000 Or 64 bits, yeah. 1518 01:22:56,001 --> 01:23:01,000 So if you want to add signals that are power levels that are more than 150 dB, or 1519 01:23:01,000 --> 01:23:05,001 that are close that approach 150 dB difference, then you need, 1520 01:23:06,000 --> 01:23:09,000 you need something bigger than IEEE double. 1521 01:23:09,000 --> 01:23:12,001 And the way I solve this problem, so I can run all my simulations, is I wave my 1522 01:23:12,001 --> 01:23:16,001 hands and let's say, okay, let's say the circulator gives us 40 dB of isolation. 1523 01:23:17,000 --> 01:23:22,001 So these tall spikes here are us hearing our own transmitter through a 40 dB 1524 01:23:22,001 --> 01:23:25,001 circulator, a circulator giving us 40 dB of isolation. 1525 01:23:26,000 --> 01:23:27,001 Really, these would be taller. 1526 01:23:29,001 --> 01:23:30,001 What? How do you do that? 1527 01:23:34,001 --> 01:23:35,000 Yeah. 1528 01:23:36,000 --> 01:23:36,001 Yeah, yeah. 1529 01:23:37,001 --> 01:23:39,001 So, so that's what these tall spikes are. 1530 01:23:40,000 --> 01:23:43,000 So the transmitter actually radiated, you know, the power we're sending up the 1531 01:23:43,000 --> 01:23:46,001 antenna is 40 dB above this, because we're listening to it through, 1532 01:23:47,000 --> 01:23:48,001 effectively, a 40 dB of attenuation. 1533 01:23:49,000 --> 01:23:55,000 And, and notice that's about 40 dB above the received power levels, the total 1534 01:23:55,000 --> 01:23:57,001 received power level as well, and about 50 dB above the actual 1535 01:23:57,001 --> 01:23:59,001 receptions of the signal levels of the packets. 1536 01:23:59,001 --> 01:24:06,001 What I've drawn in here is the, the, the signal level of individual packets. 1537 01:24:06,001 --> 01:24:10,001 So this is the noise, and the noise goes, I mean, the noise includes all the 1538 01:24:10,001 --> 01:24:14,000 interference, and it's tall when it's up, minus 60 1539 01:24:14,000 --> 01:24:16,000 dBw when our own transmitter's on. 1540 01:24:16,000 --> 01:24:18,001 That's around minus 100 dBw when our own transmitter's off. 1541 01:24:20,000 --> 01:24:24,000 And the receptions are here. So the distance from these receptions up to the 1542 01:24:24,000 --> 01:24:29,001 noise level is kind of the signal to noise plus signal ratio. 1543 01:24:33,001 --> 01:24:37,001 And you can't really learn much from this plot, except I can wave at my hands 1544 01:24:37,001 --> 01:24:39,000 at it while I talk about how the simulator works. 1545 01:24:40,000 --> 01:24:41,000 And, show up for you here. 1546 01:24:41,001 --> 01:24:47,000 There's no, yeah, more or less, except this is signal to signal 1547 01:24:47,000 --> 01:24:48,001 plus noise ratio, not signal to noise ratio. 1548 01:24:49,001 --> 01:24:52,000 Which, if, if this were further apart, they're kind of the 1549 01:24:52,000 --> 01:24:54,000 same thing. They approach the same thing. 1550 01:24:54,000 --> 01:24:57,001 Now, notice the receptions come at a different power level. That's because in 1551 01:24:57,001 --> 01:25:00,000 this simulation I was running a fixed 1552 01:25:00,000 --> 01:25:01,001 transmitter power level throughout the system. 1553 01:25:01,001 --> 01:25:03,000 All, no power control. 1554 01:25:05,001 --> 01:25:10,000 And I have, this is when you're on transmitter on. 1555 01:25:10,000 --> 01:25:15,001 What this tall is, when the noise interference level pops up about 10 dB, 1556 01:25:16,001 --> 01:25:21,001 that's due to that really nearby neighbor who's got his transmitter on. 1557 01:25:22,000 --> 01:25:25,001 And he kind of pops up out of the noise. And if you had a reception down 1558 01:25:25,001 --> 01:25:27,001 here, you suddenly, you have a problem. 1559 01:25:28,000 --> 01:25:33,001 And I'll come back to that later. So that's, that should more or less explain, 1560 01:25:33,001 --> 01:25:35,000 you know. Exactly. 1561 01:25:35,001 --> 01:25:37,000 Some people call that a near-power problem. 1562 01:25:44,000 --> 01:25:44,001 [...] 1563 01:25:54,001 --> 01:26:00,000 Yeah, but I, yeah, that, I believe you. Absolutely. I think that would do it. 1564 01:26:00,000 --> 01:26:03,000 And you'd be doing a random, instead of always being biased 1565 01:26:03,000 --> 01:26:06,000 wrong, you'd be doing a random walk. 1566 01:26:06,001 --> 01:26:10,000 Which hopefully wouldn't walk too far. But this is an IEEE floating point unit in 1567 01:26:10,000 --> 01:26:12,001 my microprocessor. I don't know if I, I don't know if I can tweak that. 1568 01:26:13,000 --> 01:26:17,001 I'm just writing code in C and running it on a, I was actually running on a, 1569 01:26:17,001 --> 01:26:19,000 on a MIPSAR 3000 at the time. 1570 01:26:21,001 --> 01:26:24,001 And I, I think it had mode bits, but I don't think you could get at them from 1571 01:26:24,001 --> 01:26:26,001 user mode. So I'd have to hack the kernel. 1572 01:26:33,000 --> 01:26:37,001 Yeah, well I found another way around this. 1573 01:26:39,001 --> 01:26:41,000 You should have talked to me four years ago. 1574 01:26:42,001 --> 01:26:45,000 I'm still not sure if I would have been able to do it in the computer I had. 1575 01:26:45,001 --> 01:26:48,000 So, interesting idea. 1576 01:26:48,001 --> 01:26:52,000 So this was, like, this is the flight I had up just a moment ago. This is the 1577 01:26:52,000 --> 01:26:53,001 without power control. 1578 01:26:53,001 --> 01:26:56,000 Here I turned on power control, and this 1579 01:26:56,000 --> 01:26:58,000 station was sending to three other stations. 1580 01:26:58,000 --> 01:27:00,000 And you can see that our transmitter power level 1581 01:27:00,000 --> 01:27:02,000 goes between three different values. 1582 01:27:02,001 --> 01:27:06,000 This is when we're sending to that guy who's really nearby. This is sending 1583 01:27:06,000 --> 01:27:07,001 to one of the other two visits further away. 1584 01:27:08,000 --> 01:27:11,000 And you can see this is quite different than power control. And the power control 1585 01:27:11,000 --> 01:27:15,000 throughout the whole network in this simulation, conspired to always deliver 1586 01:27:15,000 --> 01:27:19,001 minus 120 dBw to the receiver. So all the receptions are exactly this level. 1587 01:27:21,001 --> 01:27:24,001 Just to illustrate what I mean by power control, you can sort of see it here. 1588 01:27:25,000 --> 01:27:27,001 Now you can't really learn anything. You know, these 1589 01:27:27,001 --> 01:27:29,001 two plots look a little different. 1590 01:27:30,000 --> 01:27:34,001 You know, with power control it was a little lower, but I could have conspired to 1591 01:27:34,001 --> 01:27:37,000 fix the transmitter power level so that they kind of look the same. 1592 01:27:38,000 --> 01:27:41,000 You know, there's really not much to learn by comparing those two. 1593 01:27:42,001 --> 01:27:46,000 What I've done here, now this is with, again with power control, this is from the 1594 01:27:46,000 --> 01:27:47,001 simulation without power control. 1595 01:27:48,001 --> 01:27:52,000 And what I've done on this, now remember this, 1596 01:27:53,000 --> 01:27:54,001 I told you what the traffic load was. 1597 01:27:54,001 --> 01:27:59,000 I was just loading up to send to nearby neighbors. So all, every station is 1598 01:27:59,000 --> 01:28:02,000 constantly, they'll be sending to a nearby neighbor throughout the entire NAT. 1599 01:28:03,000 --> 01:28:09,000 And so what I did for all my simulations, I, what I have on this axis, on the 1600 01:28:09,000 --> 01:28:12,000 horizontal axis, is signal to noise ratio in dustables. 1601 01:28:12,000 --> 01:28:18,001 There's 20 dB, 10 dB, 0 dB, minus 10 dB, minus 20 dB. So this is the 1602 01:28:18,001 --> 01:28:23,000 one, one in 100, one part in 100 signal to noise ratio. 1603 01:28:24,001 --> 01:28:28,001 I refuse to say negative signal to noise ratio. It's always a positive signal to 1604 01:28:28,001 --> 01:28:30,001 noise ratio. It's just the log of the signal to noise ratio that 1605 01:28:30,001 --> 01:28:32,000 is negative when you're in dB. 1606 01:28:33,001 --> 01:28:38,000 So this is what sort of distribution you get of signal, worst case signal to 1607 01:28:38,000 --> 01:28:41,000 noise ratios during receptions of packets without power control turned on. 1608 01:28:41,000 --> 01:28:46,000 And you see this kind of blob. And if you picked, the way to think about this is 1609 01:28:46,000 --> 01:28:52,000 that if you picked a processing gain of say 23 dB, and you needed 5 dB of 1610 01:28:52,000 --> 01:28:55,000 headroom, then all of the packets to the right of here 1611 01:28:55,000 --> 01:28:57,001 in this distribution would have been received. 1612 01:28:58,000 --> 01:29:04,000 And only these few down here might not have been received. So this kind of sort 1613 01:29:04,000 --> 01:29:07,001 of, even this without power control sort of confirms, 1614 01:29:08,000 --> 01:29:09,001 you know, more or less what I was thinking about. 1615 01:29:09,001 --> 01:29:14,000 You know, this thing ought to work from my analysis earlier. And I'll 1616 01:29:14,000 --> 01:29:15,001 come back and actually do a comparison later. 1617 01:29:16,000 --> 01:29:21,000 What I want to do right now is actually turn on power control and it tightens up 1618 01:29:21,000 --> 01:29:26,000 the distribution. This plot is at the same scale as the previous. 1619 01:29:26,001 --> 01:29:29,001 What it's done is it's 1620 01:29:29,001 --> 01:29:36,000 taken what was in this distribution, I can put them over 1621 01:29:36,000 --> 01:29:38,000 each other, and scrunched them together. 1622 01:29:38,000 --> 01:29:41,001 And it sort of makes sense because what it's doing is it's fixing the signal 1623 01:29:41,001 --> 01:29:45,000 level everywhere. And we already think that because there's so many stations, the 1624 01:29:45,000 --> 01:29:47,000 noise level is sort of what it is in a large network. 1625 01:29:47,000 --> 01:29:52,000 There's only 100 stations in the simulation, but the power control, that's what 1626 01:29:52,000 --> 01:29:57,001 power control does for you. It sort of eliminates the very high signal to noise 1627 01:29:57,001 --> 01:30:01,000 ratios because when that would have happened, you turn your power down. 1628 01:30:01,000 --> 01:30:07,001 And because people turn their power down, it reduces the number of 1629 01:30:07,001 --> 01:30:09,000 very low signal to noise ratio 1630 01:30:09,000 --> 01:30:11,000 receptions and sort of brings them closer to the middle. 1631 01:30:11,001 --> 01:30:16,001 Now what I want to do is actually I'm going to zoom in on this picture. This is 1632 01:30:16,001 --> 01:30:21,000 with power control turned on. And I'm going to look at this tail here. 1633 01:30:21,000 --> 01:30:24,001 So I'm going to zoom in on this tail. I'm going to sort of blow the scale up of 1634 01:30:24,001 --> 01:30:31,000 this plot with my next plot. And I actually moved zero up, the zero level up a 1635 01:30:31,000 --> 01:30:34,000 little bit off the y-axis so we could see this more clearly. 1636 01:30:34,001 --> 01:30:40,000 And this tail goes out for a ways and there's some very low, there's some packets 1637 01:30:40,000 --> 01:30:44,000 that came in with fairly low signal to noise ratio. And what 1638 01:30:44,000 --> 01:30:47,001 happened? It's the near far problem. 1639 01:30:50,000 --> 01:30:55,000 And when I explained today my scheduling method, I just talked about well we'll 1640 01:30:55,000 --> 01:31:02,000 schedule to avoid, you know, my neighbors will know when they can send to me 1641 01:31:02,000 --> 01:31:04,001 because they'll know when I'm not transmitting. 1642 01:31:04,001 --> 01:31:09,000 So we don't have, you know, extreme, so there were no extremely low signal to 1643 01:31:09,000 --> 01:31:13,000 noise ratios. That never happened because the scheduling method was working. We 1644 01:31:13,000 --> 01:31:17,001 didn't see any minus 100 or minus 80 dB signal to noise ratios. 1645 01:31:17,001 --> 01:31:19,001 Or it would be closer to minus 40. 1646 01:31:19,001 --> 01:31:24,001 But, time's running along. 1647 01:31:28,000 --> 01:31:32,000 But there was this near far problem. Now, the scheduling method is fairly easy to 1648 01:31:32,000 --> 01:31:36,001 extend since I know what your schedule is and I know that I'm close to you. 1649 01:31:37,000 --> 01:31:38,001 And I know what my schedule is. 1650 01:31:39,000 --> 01:31:43,000 It's fairly easy for me, and I know what the path gain is. I'm assuming we've 1651 01:31:43,000 --> 01:31:48,000 done enough for that for power control. So if I'm going to send over there and 1652 01:31:48,000 --> 01:31:52,001 I'm nearby some other receiver and I know what his schedule is, when I'm finding 1653 01:31:52,001 --> 01:31:56,000 the place that I'm going to send this packet to him, I can look at 1654 01:31:56,000 --> 01:31:57,001 his received schedule as well. 1655 01:31:58,001 --> 01:32:04,001 And choose to send when I, if I'm going to send a packet far away, I'm going, 1656 01:32:04,001 --> 01:32:08,000 what I can do is I can look at, I need to find a time when that's a received 1657 01:32:08,000 --> 01:32:12,001 slot, I've got a transmit slot, and he's in a transmit slot. 1658 01:32:14,000 --> 01:32:19,001 Exactly. Now, does this really constrain things much? Well, it's only about 1659 01:32:19,001 --> 01:32:26,001 20% of the time that I can send to him. What fraction of, and 1660 01:32:26,001 --> 01:32:31,000 so there's a given schedule that I can send across the room. You know, I can send 1661 01:32:31,000 --> 01:32:36,000 if somebody is fairly distant. What fraction of his, so, and all the schedules, 1662 01:32:36,000 --> 01:32:42,000 what fraction of his slots are transmit slots? 70%, a majority. So it actually 1663 01:32:42,000 --> 01:32:45,000 doesn't constrain you that much. And it's only when you're sitting right on top 1664 01:32:45,000 --> 01:32:50,001 of somebody. In fact, it never comes into play unless there's a factor of about 1665 01:32:50,001 --> 01:32:55,001 four or five difference in the distances. As long as there's sort of, you know, 1666 01:32:55,001 --> 01:33:02,001 What was the ratio? Yeah, so what I did in the thesis, I picked, picked the power 1667 01:33:02,001 --> 01:33:07,001 control. So it actually, if somebody's five times closer than somebody you're 1668 01:33:07,001 --> 01:33:12,000 transmitting to, then the scheduling constraint kicks in. And it was very rare. 1669 01:33:12,001 --> 01:33:16,000 As you can see, there are only a few packets that we need to do about. As I turn 1670 01:33:16,000 --> 01:33:20,001 that on, here's the whole distribution with what I call the respect neighbor 1671 01:33:20,001 --> 01:33:22,001 constraint to the scheduling. 1672 01:33:25,001 --> 01:33:32,000 And it was a tunable number, but I found the number that just works. It doesn't, 1673 01:33:32,001 --> 01:33:37,000 it hardly changes anything. The distribution doesn't really move anywhere. I 1674 01:33:37,000 --> 01:33:40,001 mean, at this scale, it looks the same. You can't tell the difference. But then 1675 01:33:40,001 --> 01:33:44,000 when you zoom in on the tail and you look at the worst case signal to noise 1676 01:33:44,000 --> 01:33:49,000 ratios, the worst one was around. It cut off, which means all the packets were 1677 01:33:49,000 --> 01:33:53,000 delivered here, which means that if you had, by my model for what a successful 1678 01:33:53,000 --> 01:33:57,001 reception is, if you had processing gain here for that sort of factor of three 1679 01:33:57,001 --> 01:34:02,000 fudge factor, maybe five dB, by my model, I can wave my hands and say, by my 1680 01:34:02,000 --> 01:34:08,001 model, no packets are dropped due to collisions. Or due to interference, or 1681 01:34:08,001 --> 01:34:15,000 whatever. And that's what I mean by collision free. So, I 1682 01:34:15,000 --> 01:34:19,000 also did simulations with a thousand stations. 1683 01:34:22,000 --> 01:34:29,000 Same idea. You've seen all these plots before with a hundred, but here's the, I 1684 01:34:29,000 --> 01:34:34,001 have power control turned on already. And you get a distribution that looks like 1685 01:34:34,001 --> 01:34:38,001 that. The tail of this distribution goes a little further. And that's because 1686 01:34:38,001 --> 01:34:44,000 with a thousand stations, the closest, the random guy who, you know, we wound up 1687 01:34:44,000 --> 01:34:47,000 with two guys sitting proportionally closer to each other than 1688 01:34:47,000 --> 01:34:49,000 we did in the thing. And that'll, that'll work. 1689 01:34:49,000 --> 01:34:54,000 And that'll happen as you have more chances for that to happen. So, so I'm going 1690 01:34:54,000 --> 01:34:58,000 to, again, zoom in on the lower left tail of that. And you can see that there's 1691 01:34:58,000 --> 01:35:03,001 some fairly low signal to noise ratios. And here's the minus 20 dB. And so 1692 01:35:03,001 --> 01:35:08,000 there's actually, we cut off at about minus 17 before. And there's, we've 1693 01:35:08,000 --> 01:35:11,000 actually got quite a, quite a lot out there. And I turn on the respect neighbor 1694 01:35:11,000 --> 01:35:14,001 constraint, which again, rarely comes into play. There's a lot of mass in this 1695 01:35:14,001 --> 01:35:18,000 distribution to the right of here. Even though we see a lot of stuff here. 1696 01:35:19,000 --> 01:35:22,001 And turn on the respect neighbor. What? 1697 01:35:26,000 --> 01:35:29,001 Yeah, that's right. And you turn on the respect neighbor constraint here in the 1698 01:35:29,001 --> 01:35:36,000 thousand station case. And again, it cuts off at about minus 17 dB. Now, 1699 01:35:37,001 --> 01:35:42,000 gosh, it's been a while. There was a time when I convinced myself that as you 1700 01:35:42,000 --> 01:35:45,001 turn up the number of stations in the network, and you have larger and larger 1701 01:35:45,001 --> 01:35:52,000 contributions from distance stations to those sort of total noise, that this, as 1702 01:35:52,000 --> 01:35:57,001 this walks left, as the sort of whole distribution walks left, you can, you can 1703 01:35:57,001 --> 01:36:03,001 cut it off tighter. So this actually doesn't move much. This minus 17 dB. It 1704 01:36:03,001 --> 01:36:07,000 moves over more slowly than the whole distribution moves over. So the respect 1705 01:36:07,000 --> 01:36:11,001 neighbor constraint is a fairly powerful thing. And that's why I claim that all 1706 01:36:11,001 --> 01:36:14,000 packets are received successfully by this 1707 01:36:14,000 --> 01:36:16,001 model. What's the difference between these two? 1708 01:36:19,000 --> 01:36:24,001 I have a surprise slide in here that I don't know what to steer for. I think I 1709 01:36:24,001 --> 01:36:29,001 have two duplicate slides. No, no, they're the same. They're the same because 1710 01:36:29,001 --> 01:36:36,000 once the zoom in. That's the one that's cut off. So, 1711 01:36:37,000 --> 01:36:43,000 where did Bob go? Back in the room now. Your question earlier was, what about the 1712 01:36:43,000 --> 01:36:45,000 hotspot? The middle or not? 1713 01:36:45,000 --> 01:36:51,001 Let me find my thousand station picture. I 1714 01:36:51,001 --> 01:36:58,001 had a better picture earlier. Thousand 1715 01:36:58,001 --> 01:37:04,000 stations, just to think about for a second. There are a thousand points in this 1716 01:37:04,000 --> 01:37:10,001 network. There are a million stations to station paths. Because 1717 01:37:10,001 --> 01:37:14,000 there's a, or there's 450,000 or something. 1718 01:37:14,000 --> 01:37:19,001 It's one, it's roughly, oh, one way path. There's a, if you include the path to 1719 01:37:19,001 --> 01:37:23,000 yourself, there's a million. Because there's a thousand sources and a thousand 1720 01:37:23,000 --> 01:37:29,000 destinations. Subtract out the thousand trivial ones. We're left with almost a 1721 01:37:29,000 --> 01:37:35,000 million. There's about a million paths in this. And so what I did is I went 1722 01:37:35,000 --> 01:37:39,001 through, so there's a million start, source the destination paths. 1723 01:37:40,001 --> 01:37:45,001 I went through and I traced every one of them. And every time I came across the 1724 01:37:45,001 --> 01:37:51,000 station, I incremented a counter. So now, for all thousand stations, 1725 01:37:52,001 --> 01:37:58,001 what I have is how many paths go through me. So, and that's always an even 1726 01:37:58,001 --> 01:38:03,001 number. Because it's symmetric. That's 1727 01:38:03,001 --> 01:38:05,001 what I did. 1728 01:38:05,001 --> 01:38:11,000 And I've lost the, here it is. 1729 01:38:12,000 --> 01:38:17,001 Now, for my thousand stations, what does the distribution look 1730 01:38:17,001 --> 01:38:19,000 like for the results of those numbers? 1731 01:38:25,001 --> 01:38:31,000 So, let's see. On this axis, I have number of paths, which goes out to about 200 1732 01:38:31,000 --> 01:38:37,000 ,000, or about 20%. And there were a few cases over here. 1733 01:38:38,000 --> 01:38:42,000 Where there were, there were three stations in this, in the middle of this. That 1734 01:38:42,000 --> 01:38:46,000 had over 20% of the million paths going through them. 1735 01:38:49,000 --> 01:38:56,000 This is a hotspot in the routing. And there were, you know, quite a few that 1736 01:38:56,000 --> 01:39:00,001 were over 100,000. Had more than 10% of the paths through them. I actually went 1737 01:39:00,001 --> 01:39:04,000 through, and the thesis is a plot. I don't have the foil for it, but there's a 1738 01:39:04,000 --> 01:39:09,000 plot that shows actually which stations had, I think, more than 10%. So all the 1739 01:39:09,000 --> 01:39:14,001 stations that contributed to here, I drew the plot. I drew this plot. But I left, 1740 01:39:14,001 --> 01:39:17,000 I didn't draw the square for the station unless it was one of 1741 01:39:17,000 --> 01:39:19,000 those. So you can actually see where they are. 1742 01:39:21,000 --> 01:39:24,001 This is frustrating because this seems to be like the bottleneck limiting sort 1743 01:39:24,001 --> 01:39:29,001 of, if you're doing end-to-end traffic in the net. I think something can be done 1744 01:39:29,001 --> 01:39:36,001 to solve this. But I tried something while I was doing the thesis. And 1745 01:39:36,001 --> 01:39:40,001 what I came up with was, well, maybe I need to compute something other than 1746 01:39:40,001 --> 01:39:45,000 minimum energy routes. In fact, maybe what we want to do is, is go twice as far. 1747 01:39:46,000 --> 01:39:48,000 Well, you could put a wormhole there, right? 1748 01:39:48,001 --> 01:39:53,000 Well, you could lay fiber across town, absolutely. Or hop up to another frequency 1749 01:39:53,000 --> 01:40:00,000 and put a point to one at Microlink across town. So what I did is I, the 1750 01:40:00,000 --> 01:40:03,000 one thing, the one experiment I had time to do and write up and put in the thesis 1751 01:40:03,000 --> 01:40:07,001 was, I added a knob to the routing. So that instead of minimum energy routing, 1752 01:40:07,001 --> 01:40:12,001 I'm doing minimize energy plus number, some constant times number of hops. 1753 01:40:13,001 --> 01:40:18,000 And that constant is a knob I was able to turn. And I turned that knob until the 1754 01:40:18,000 --> 01:40:20,001 average path links had dropped in half. Meaning we're 1755 01:40:20,001 --> 01:40:22,000 going about twice as far in every hop. 1756 01:40:25,000 --> 01:40:30,001 This still has the property that a suffix of a route is the route of that suffix. 1757 01:40:31,000 --> 01:40:33,000 So you can still have just a routing table and 1758 01:40:33,000 --> 01:40:35,000 everything. That took me well to think about. 1759 01:40:36,000 --> 01:40:40,001 And so I did this simulation. Now this is the same simulation as before with the 1760 01:40:40,001 --> 01:40:43,000 Thousand Stations, but it's plotted at the same scale as my next 1761 01:40:43,000 --> 01:40:45,000 slide so we can compare them. 1762 01:40:45,001 --> 01:40:48,001 This is the Thousand Station simulation with power control and respect neighbor 1763 01:40:48,001 --> 01:40:53,001 turned on. This is the Thousand Station simulation with power control, respect 1764 01:40:53,001 --> 01:40:58,001 neighbor, and my modified routing that only goes, 1765 01:40:59,000 --> 01:41:00,001 that goes twice as far and a half. 1766 01:41:02,001 --> 01:41:06,000 I didn't print out the plot, but it also, it reduced the sharing by about a 1767 01:41:06,000 --> 01:41:10,000 factor of two. And instead of having the worst stations be 20% of the paths 1768 01:41:10,000 --> 01:41:13,000 through them, the worst stations are only 10% of the paths through them. 1769 01:41:13,001 --> 01:41:18,001 So the difference is, is that this whole distribution moved over about 5 dB. 1770 01:41:21,001 --> 01:41:26,001 So, or you'd have to reduce the, increase the processing gain so you're lowering 1771 01:41:26,001 --> 01:41:30,000 the data rate that you could actually send that and give them a fixed size. 1772 01:41:31,001 --> 01:41:35,000 So, so we have about a 5 dB difference in signal noise ratio. Remember I said the 1773 01:41:35,000 --> 01:41:41,000 bit rate that you can send has a proportional signal noise ratio. So you can, so 1774 01:41:41,000 --> 01:41:43,001 about a, so the way to actually think about it is if you're going about twice as 1775 01:41:43,001 --> 01:41:46,001 far per hop, that means you've turned your transmitter 1776 01:41:46,001 --> 01:41:48,001 up about a factor of four in power. 1777 01:41:49,000 --> 01:41:53,001 That'd be 6 dB. So actually we should expect about a 6 dB 1778 01:41:53,001 --> 01:41:59,001 worsening in the signal to noise ratio. And what we've done in the middle of the 1779 01:41:59,001 --> 01:42:03,000 network, so that means we can only send that one fourth of the data 1780 01:42:03,000 --> 01:42:04,001 rate we would have been able to in the other network. 1781 01:42:04,001 --> 01:42:07,001 So we've had a factor of four penalty in signal to noise ratio. However, we 1782 01:42:07,001 --> 01:42:12,000 picked up a factor of two in sort of the, the congestion 1783 01:42:12,000 --> 01:42:13,001 performance in the middle of the network. 1784 01:42:14,000 --> 01:42:18,001 Unfortunately it's in that loss of a factor of two in total system performance, 1785 01:42:19,000 --> 01:42:21,000 assuming that what you're concerned about is throughput. 1786 01:42:25,000 --> 01:42:28,001 So, shocks. It seems to me that it's important 1787 01:42:28,001 --> 01:42:30,000 to actually take the minimum energy route. 1788 01:42:32,001 --> 01:42:37,000 I tried to figure out, and never got anywhere, and there's nothing in the thesis 1789 01:42:37,000 --> 01:42:40,001 about this, but I tried to figure out what, how would you compute the optimum 1790 01:42:40,001 --> 01:42:42,001 routes given configuration. 1791 01:42:43,001 --> 01:42:47,000 I can't even figure out how to write down the problem right so that people who 1792 01:42:47,000 --> 01:42:48,001 are really good at algorithms could help me. 1793 01:42:51,000 --> 01:42:57,001 It strikes me that what you need to do is to apply this method to a certain 1794 01:42:57,001 --> 01:43:03,001 size network, certain number of units, and then start 1795 01:43:03,001 --> 01:43:06,001 using a collapse factor on the unit. 1796 01:43:07,000 --> 01:43:12,000 Yes, absolutely. Have ways of getting past the middle of the net. I'll still wave 1797 01:43:12,000 --> 01:43:14,001 my hands at the end though about something I think would be interesting. 1798 01:43:15,000 --> 01:43:20,000 This led me to believe that minimum energy routing is important, and maybe some 1799 01:43:20,000 --> 01:43:22,001 more work to do here. But for now I believe in it. 1800 01:43:23,001 --> 01:43:25,001 Anyway, that's sort of the, this is not the 1801 01:43:25,001 --> 01:43:27,000 end of my talk, this is sort of the end of my thesis. 1802 01:43:27,000 --> 01:43:31,000 Sort of the conclusion of my thesis is that spread spectrum plus the multi-hop 1803 01:43:31,000 --> 01:43:34,001 routing and the scheduling method and the minimum energy routing led to a 1804 01:43:34,001 --> 01:43:36,001 functional, scalable packet radio network. 1805 01:43:37,000 --> 01:43:39,001 And scale by scalable, I mean millions of stations. 1806 01:43:42,001 --> 01:43:45,000 I still have, okay. 1807 01:43:49,001 --> 01:43:53,001 For a metro area, yeah. 1808 01:44:01,000 --> 01:44:01,001 Packets. 1809 01:44:05,001 --> 01:44:11,001 Can you give us a sense of the people on the edges of the metropolitan area and 1810 01:44:11,001 --> 01:44:17,000 people towards the middle of the metropolitan area, how much proportion they are 1811 01:44:17,000 --> 01:44:20,000 relaying other people and how much they have originated? 1812 01:44:20,001 --> 01:44:23,001 Well, what you really care about is how much performance do you get in the system 1813 01:44:23,001 --> 01:44:25,001 scales. And I'm going to do that. 1814 01:44:27,000 --> 01:44:29,001 Okay, so now I started thinking about what we could build. 1815 01:44:30,001 --> 01:44:32,000 And I want to get my back to my thousand station 1816 01:44:32,000 --> 01:44:36,000 picture because I'm going to wave my hands. 1817 01:44:38,000 --> 01:44:41,000 No, what you're asking is exactly the right question. I have a way of addressing 1818 01:44:41,000 --> 01:44:44,001 that, which is still coming later in my talk. Not there yet. 1819 01:44:46,000 --> 01:44:46,001 Good question. 1820 01:44:48,000 --> 01:44:52,001 Actually, the ratio, I'm not so much concerned about how much traffic is my own 1821 01:44:52,001 --> 01:44:54,001 that I'm sending and how much am I relaying. 1822 01:44:55,000 --> 01:44:56,001 What I care about is how much do I get. 1823 01:45:01,000 --> 01:45:05,000 But if you're not happy when I get done with the talk, ask your question again. 1824 01:45:08,000 --> 01:45:13,000 So I started thinking about what can we build. It was originally this 47 CFR 15 1825 01:45:13,000 --> 01:45:17,001 .247 authorization that sort of inspired me to go off and figure all this out. 1826 01:45:17,001 --> 01:45:20,000 Now I go try to fit this system in that allocation. 1827 01:45:21,001 --> 01:45:25,000 And it's sort of frustrating. The widest of those authorizations is 1828 01:45:25,000 --> 01:45:26,001 only 125 MHz wide. 1829 01:45:27,000 --> 01:45:30,000 And with 23DV processing gain, the raw transmitter data rate is going to be 1830 01:45:30,000 --> 01:45:31,001 around 625 kilos per second. 1831 01:45:31,001 --> 01:45:35,001 A little bit of hand waving here, but I'm not off by more than a factor of two. 1832 01:45:36,000 --> 01:45:40,000 So the maximum throughput to a single neighbor is about 94 kilos per second. 1833 01:45:40,001 --> 01:45:44,000 And actually, there's a factor that you didn't see, but this is basically what 1834 01:45:44,000 --> 01:45:48,000 fraction in that plot where I had all the received duty cycles. 1835 01:45:49,000 --> 01:45:52,000 With another factor thrown in for the actual fitting of the packet bin because 1836 01:45:52,000 --> 01:45:54,001 you can't always put full-size packets in. 1837 01:45:55,000 --> 01:46:00,000 Anyway, so you can only go to a single neighbor at about 94 kilos per second. 1838 01:46:00,000 --> 01:46:02,001 So the way to think of that is what you've got is 1839 01:46:02,001 --> 01:46:04,000 you've got a net that kind of looks like that. 1840 01:46:04,001 --> 01:46:06,001 And every one of those little edges is about a 1841 01:46:06,001 --> 01:46:08,001 94 kilos per second bi-directional pipe. 1842 01:46:09,000 --> 01:46:12,001 And now you can start thinking about traffic in terms of nodes and edges. 1843 01:46:13,001 --> 01:46:17,000 That's kind of frustrating because that's got to be shared by 1844 01:46:17,000 --> 01:46:19,000 200,000 paths through it. 1845 01:46:19,000 --> 01:46:21,001 And I don't know how many of those actually have traffic on them. 1846 01:46:24,000 --> 01:46:27,000 So think, well, what could I do? Well, maybe, you know, there's all sorts 1847 01:46:27,000 --> 01:46:28,001 of millimeter wave spectrum up there. 1848 01:46:28,001 --> 01:46:33,001 And if we wait a while, maybe we'll be able to build stuff there sometime. 1849 01:46:35,000 --> 01:46:40,000 And so a two gigahertz wide system with 23U processing gain, you can have a raw 1850 01:46:40,000 --> 01:46:42,000 transmitter data of about 10 megabits per second. 1851 01:46:44,000 --> 01:46:46,001 Maximum throughput to a single neighbor would be about 1.5 megabits per second. 1852 01:46:46,001 --> 01:46:49,000 So that's similar to a T1 leased line. 1853 01:46:49,000 --> 01:46:50,001 But still, you've got to share that. 1854 01:46:50,001 --> 01:46:52,001 And it's not clear to me that this is interesting. 1855 01:46:53,000 --> 01:46:55,000 It doesn't seem like in a million-station 1856 01:46:55,000 --> 01:46:57,000 network, you're getting enough performance. 1857 01:46:57,000 --> 01:46:59,000 So you might have a rush in the body. 1858 01:47:00,000 --> 01:47:03,001 I thought I might be able to do that. You don't do it on my direction. 1859 01:47:04,000 --> 01:47:09,001 Yeah, well, so what I didn't have time, another thing I didn't have time to 1860 01:47:09,001 --> 01:47:12,000 explore in the thesis is what is the effect of directional antennas? 1861 01:47:15,000 --> 01:47:20,000 And the way to think about this is, it's just 12 dB of directional gain. 1862 01:47:20,000 --> 01:47:22,000 And that means 6 dB at each end. 1863 01:47:22,001 --> 01:47:24,000 This is directional gain over Omni. 1864 01:47:24,001 --> 01:47:26,000 And this is very interesting because... 1865 01:47:30,000 --> 01:47:35,001 So it's Don, right? Don's talk two days ago, I was sitting here listening to it, 1866 01:47:35,001 --> 01:47:40,000 and I'm like, oh, he started with directionality and then kind of mixed by, you 1867 01:47:40,000 --> 01:47:42,001 know, by the end you realize maybe he wanted to add spread spectrum. 1868 01:47:42,001 --> 01:47:45,001 I started with spread spectrum and Omni, and I got to the end and 1869 01:47:45,001 --> 01:47:47,000 think, well, maybe I really want directional. 1870 01:47:47,000 --> 01:47:53,000 And it's kind of like, I think we wind up at the same place once we've really 1871 01:47:53,000 --> 01:47:55,000 thought everything through and thought through the stuff we'd understand. 1872 01:47:56,000 --> 01:48:00,000 But really, I think all we need for directional gain is about 12 dB. 1873 01:48:01,001 --> 01:48:04,001 And that's, I mean, 6 dB at the transmitter and 6 dB at the receiver. 1874 01:48:05,000 --> 01:48:09,001 And this is 6 dB over Omni, meaning that I've got a sort of a 6 dB main lobe 1875 01:48:09,001 --> 01:48:12,001 that, such that everything that's not in that main lobe is down 6 1876 01:48:12,001 --> 01:48:14,000 dB from what I've got in that main lobe. 1877 01:48:14,000 --> 01:48:17,001 And you do that at the transmitter and receiver, and you can add those together. 1878 01:48:20,000 --> 01:48:25,001 Exactly. So if you could do hard sector, hard quadrants as sectors, you'd only 1879 01:48:25,001 --> 01:48:28,000 have to have, like, you know, look in four different directions. 1880 01:48:33,001 --> 01:48:34,001 Exactly what I'm thinking. 1881 01:48:35,000 --> 01:48:38,000 Now, in fact, you probably wouldn't be able to produce 1882 01:48:38,000 --> 01:48:40,000 hard sectors, but you probably built six. 1883 01:48:40,000 --> 01:48:42,000 And each of them would have sort of a 6 dB main lobe. 1884 01:48:42,000 --> 01:48:45,001 And maybe you could actually get maybe another dB out of it with 1885 01:48:45,001 --> 01:48:48,000 6, or maybe a half a dB or something. 1886 01:48:48,001 --> 01:48:53,001 But anyway, now, maybe we could get through with maybe 10 or maybe 12 dB of 1887 01:48:53,001 --> 01:48:55,001 spread spectrum processing gain with the directional gain. 1888 01:48:55,001 --> 01:48:58,000 You'd absolutely have to wrap this up with good error correcting codes 1889 01:48:58,000 --> 01:49:00,000 with this little processing gain. 1890 01:49:00,000 --> 01:49:01,000 But I think it's doable. 1891 01:49:02,000 --> 01:49:06,000 And then a 2 GHz wide system could have a raw throughput when your transmitter is 1892 01:49:06,000 --> 01:49:08,000 turned on of about 200 megabits per second. 1893 01:49:08,000 --> 01:49:12,000 And so the maximum throughput to a single main lobe would be, actually, more 1894 01:49:12,000 --> 01:49:14,000 recently, I've been saying about 25 megabits per second. 1895 01:49:14,000 --> 01:49:17,000 These are kind of hand waving numbers because they, you know, it all depends on 1896 01:49:17,000 --> 01:49:19,000 what the traffic is and a lot of things like that. 1897 01:49:19,000 --> 01:49:22,000 I like to think of, when I made the slide, this slide 1898 01:49:22,000 --> 01:49:23,001 is more than three years old. 1899 01:49:25,000 --> 01:49:26,001 These days I'm thinking 25 megabits per second. 1900 01:49:27,000 --> 01:49:33,000 So now, let's think about what the capacity of a system would be. 1901 01:49:33,000 --> 01:49:35,001 Now, what I've got on this slide is only a thousand stations. 1902 01:49:35,001 --> 01:49:38,000 But imagine this is a million stations. 1903 01:49:38,000 --> 01:49:39,001 I'm not actually going to point at any one station. 1904 01:49:39,001 --> 01:49:41,000 I'm just going to wave at the whole network here. 1905 01:49:41,001 --> 01:49:47,001 If this is a million stations and it's like a metropolitan area, the number, 1906 01:49:48,001 --> 01:49:51,000 the bottleneck is kind of getting across the middle. 1907 01:49:51,000 --> 01:49:54,001 Now, I haven't figured out how to do the routing to spread all the traffic out. 1908 01:49:54,001 --> 01:49:59,000 But imagine, but what is the total capacity from the left side to the right side? 1909 01:49:59,001 --> 01:50:04,001 Well, cut it down the middle and ask how many of these 25 megabits per 1910 01:50:04,001 --> 01:50:06,000 second bidirectional links you have cut. 1911 01:50:06,001 --> 01:50:09,001 I've thought about it and my intuition is it ought to be about the square root of 1912 01:50:09,001 --> 01:50:11,001 the number of stations or proportional to that. 1913 01:50:11,001 --> 01:50:14,000 But it really ought to be, wave my hands a little bit. 1914 01:50:14,001 --> 01:50:18,001 I actually took a bunch of these plots, drew a line across them and counted, and 1915 01:50:18,001 --> 01:50:21,000 always came out to be right around the square root of the number of stations. 1916 01:50:22,000 --> 01:50:23,001 So I believe that number now. 1917 01:50:24,000 --> 01:50:25,000 It matches intuition. 1918 01:50:26,000 --> 01:50:28,001 So if you've got a million stations and you cut it down the 1919 01:50:28,001 --> 01:50:30,000 middle, you cut about a thousand links. 1920 01:50:32,001 --> 01:50:36,000 If each of those thousand links is a 25 megabits per second bidirectional pipe, 1921 01:50:36,001 --> 01:50:40,000 what you have cut is 25 gigabits per second of capacity 1922 01:50:40,000 --> 01:50:42,000 from the left half to the right half of the system. 1923 01:50:44,000 --> 01:50:45,000 So that's the bottleneck. 1924 01:50:45,000 --> 01:50:48,000 We've only got 25 gigabits per second capacity in the middle of the net. 1925 01:50:48,000 --> 01:50:50,000 We've got half a million users on each side. 1926 01:50:53,000 --> 01:50:54,001 How should we think about that? 1927 01:50:54,001 --> 01:51:00,000 Well, the way to think about that is take the 25 gigabits per second and go ahead 1928 01:51:00,000 --> 01:51:02,001 and do the division divided by the 500,000. 1929 01:51:02,001 --> 01:51:05,000 You come out with a number which is in units of bits per second. 1930 01:51:05,001 --> 01:51:07,000 Actually, I've got this on the next slide. 1931 01:51:08,001 --> 01:51:11,001 All these numbers I was just saying in the past couple minutes. 200 megabits per 1932 01:51:11,001 --> 01:51:15,001 second, 25 megabits per second bidirectional links, shared 25 gigabits per second 1933 01:51:15,001 --> 01:51:18,000 capacity across the middle from the left half 1934 01:51:18,000 --> 01:51:19,001 to the right half, or top to bottom. 1935 01:51:19,001 --> 01:51:20,001 It doesn't matter where you slice it. 1936 01:51:20,001 --> 01:51:22,000 You've got a bottleneck from there to there. 1937 01:51:22,001 --> 01:51:27,001 So the per user, if you divide, do the division, 25 gigabits per second divided 1938 01:51:27,001 --> 01:51:30,000 by half a million, you get 50 kilobits per second. 1939 01:51:33,000 --> 01:51:34,001 Sort of per user data rate. 1940 01:51:34,001 --> 01:51:39,000 Now, how to understand that is to think about, well, what's the best connected 1941 01:51:39,000 --> 01:51:41,000 unit, you know, if you wanted to really be on the internet. 1942 01:51:42,000 --> 01:51:42,001 Where do you go? 1943 01:51:42,001 --> 01:51:45,001 Well, you go to some major university that's got like a big pipe. 1944 01:51:47,000 --> 01:51:49,001 And actually, this number is changing. 1945 01:51:49,001 --> 01:51:53,001 But if you take those big pipes, when I first did this calculation three years 1946 01:51:53,001 --> 01:51:59,001 ago, the big universities were typically collected over maybe a DS3, which is 1947 01:51:59,001 --> 01:52:02,000 about 50 megabits per second, 45 megabits per second. 1948 01:52:02,001 --> 01:52:04,001 You do the division on a university campus and you start coming out with 1949 01:52:04,001 --> 01:52:06,001 numbers that are about 5 kilobits per second. 1950 01:52:07,000 --> 01:52:09,000 You take that pipe size, divide it by the number of people on 1951 01:52:09,000 --> 01:52:11,001 campus, about 5 kilobits per second. 1952 01:52:11,001 --> 01:52:18,000 So this system seems to have 10 times the capacity of a major university 1953 01:52:18,000 --> 01:52:20,001 in the mid 1990s, had to the internet. 1954 01:52:22,000 --> 01:52:25,001 And that's exciting because that means this sort of can provide capacity 1955 01:52:25,001 --> 01:52:27,001 in a metropolitan area. 1956 01:52:27,001 --> 01:52:30,000 If you could build the 2 gigahertz wide system, and I don't think we have the 1957 01:52:30,000 --> 01:52:31,001 semiconductor to do that yet, but... 1958 01:52:32,000 --> 01:52:34,001 Just like all students are and always on the computer. 1959 01:52:35,000 --> 01:52:37,001 Yeah, yeah. So then, so I mean, yeah, you're sharing this. 1960 01:52:37,001 --> 01:52:40,001 And so it's just like the telephone system. I think they typically engineer for 1961 01:52:40,001 --> 01:52:43,000 only 10 people to pick up their phone and make a call at any given time. 1962 01:52:44,000 --> 01:52:44,001 Question here. 1963 01:52:44,001 --> 01:52:51,000 In the starting supposition that everybody has equal traffic on the network... 1964 01:52:51,000 --> 01:52:54,001 I did not... ...with a number of messages. 1965 01:52:57,000 --> 01:53:00,000 What happens if in reality, like there is on the internet, 1966 01:53:00,000 --> 01:53:02,000 where you have some major site? 1967 01:53:03,000 --> 01:53:07,001 I don't know. I remember, you know, the last things in my thesis is 1968 01:53:07,001 --> 01:53:09,000 like, until we have real user generating 1969 01:53:09,000 --> 01:53:10,001 traffic, we have no idea what the traffic is going to be. 1970 01:53:11,000 --> 01:53:12,001 But yeah, there'll probably be some concentration. 1971 01:53:13,001 --> 01:53:18,000 But this is an interesting system. It's really all the only argument I'm trying 1972 01:53:18,000 --> 01:53:20,000 to make here. It's an interesting amount of capacity. 1973 01:53:20,001 --> 01:53:24,001 The other issue for this, again, thinking about this, million stations. 1974 01:53:25,001 --> 01:53:28,001 If this is a million stations and you want to get from one side to the other, 1975 01:53:28,001 --> 01:53:31,001 well, you got it. The number of hops you got to go is about the, again, 1976 01:53:31,001 --> 01:53:33,000 the square root of the number of stations. 1977 01:53:34,000 --> 01:53:36,001 So to get across the metropolitan area of the million stations, you might have to 1978 01:53:36,001 --> 01:53:40,000 go a thousand hops to get from one side to the other, all the way across. 1979 01:53:42,000 --> 01:53:48,000 And in a 2 GHz wide system with 200 mbps raw transmitter data rate, 500 bits per 1980 01:53:48,000 --> 01:53:52,000 packet, the packet transmission time is only 2. 5 microseconds. 1981 01:53:54,001 --> 01:53:59,001 Now, but you've got to wait in pseudo-random schedules until you can send 1982 01:53:59,001 --> 01:54:01,000 it. You've actually got to wait some number of slot times. 1983 01:54:01,000 --> 01:54:04,000 I'm thinking 10 microsecond slots here. And you've got to wait about, on 1984 01:54:04,000 --> 01:54:06,000 average, four, maybe five slots. 1985 01:54:06,001 --> 01:54:09,001 So it takes about a scheduling delay of about 50 microseconds per hop. 1986 01:54:11,000 --> 01:54:14,000 And if you're going to go a thousand hops, that's 50 milliseconds. One 1987 01:54:14,000 --> 01:54:16,000 way delay across the metropolitan area. 1988 01:54:16,001 --> 01:54:18,001 So you could get everybody talking to everybody. 1989 01:54:18,001 --> 01:54:25,001 So this, the conclusion between this capacity, which is 50 kbps, that's more 1990 01:54:25,001 --> 01:54:27,001 trunk, 10 times more capacity than typical 1991 01:54:27,001 --> 01:54:29,000 well-conversed universities on the Internet. 1992 01:54:29,001 --> 01:54:34,000 It's also way more capacity than a telephone company in a large metropolitan area 1993 01:54:34,000 --> 01:54:36,001 would have to have in terms of trunking to support 1994 01:54:36,001 --> 01:54:38,000 all the voice calls in the metropolitan area. 1995 01:54:38,001 --> 01:54:42,001 So this is a system, the delay, you can do voice 1996 01:54:42,001 --> 01:54:44,001 with 100 millisecond round trip time. 1997 01:54:45,000 --> 01:54:48,000 So this system has more capacity in the metropolitan area telephone 1998 01:54:48,000 --> 01:54:50,000 system. Voice. 1999 01:54:51,001 --> 01:54:54,000 And that's really neat. We could cancel our phone service 2000 01:54:54,000 --> 01:54:55,001 and just talk over this. 2001 01:54:56,000 --> 01:55:01,000 And long distance telephone companies could provide, you know, packet voice long 2002 01:55:01,000 --> 01:55:04,000 distance, like Internet long distance or something, I don't 2003 01:55:04,000 --> 01:55:05,001 know, across this thing. 2004 01:55:07,000 --> 01:55:09,000 They could come into an area and just put up a few points of presence. 2005 01:55:09,000 --> 01:55:11,001 Or maybe if they wanted to provide better service with less 2006 01:55:11,001 --> 01:55:13,000 delay, they'd have to get closer to you. 2007 01:55:13,000 --> 01:55:15,001 And now you'd have a choice as to whether you wanted to go all the way across 2008 01:55:15,001 --> 01:55:20,001 town with a cheap guy who's only got one point of presence or the quality long 2009 01:55:20,001 --> 01:55:23,000 distance provider that's actually gone in and put 100 things so they can 2010 01:55:23,000 --> 01:55:25,000 get, maybe even give you a higher capacity. 2011 01:55:25,000 --> 01:55:27,001 Now, how soon? I don't know. 2012 01:55:29,001 --> 01:55:33,000 When I finished the thesis, I said that this will be feasible in 7 to 10 years. 2013 01:55:33,000 --> 01:55:36,001 You could actually, by feasible I mean you could actually do this in 2014 01:55:36,001 --> 01:55:38,000 affordable consumer electronics. 2015 01:55:40,001 --> 01:55:45,001 And that's, you know, how soon can we do a 2 GHz chipping rate in a receiver 2016 01:55:45,001 --> 01:55:48,001 that's doing error correcting codes and everything in 2017 01:55:48,001 --> 01:55:50,001 BLSI. It'd be full cost in BLSI, of course. 2018 01:55:51,001 --> 01:55:54,001 So here we are three years later and I think my prediction's about right, which 2019 01:55:54,001 --> 01:55:59,000 means subtract 3 from 7 and you get 4, subtract 3 from 10. So it's 4 to 7 years. 2020 01:55:59,001 --> 01:56:01,001 I think this could be affordable. 2021 01:56:03,001 --> 01:56:08,000 And actually this is more my research talk. This is like things I want to 2022 01:56:08,000 --> 01:56:10,001 understand. What does real propagation look like? 2023 01:56:11,000 --> 01:56:14,000 I want to go out and measure impulse responses for 2 GHz wide signals. 2024 01:56:17,000 --> 01:56:18,000 [...] guess of one the other. 2025 01:56:18,001 --> 01:56:22,000 Yeah. Does directionality really work the way I think it does? 2026 01:56:22,000 --> 01:56:25,001 I've made this hand waving argument about this directional gain, but I haven't 2027 01:56:25,001 --> 01:56:28,001 done any simulations there. I've just tried to wrap my brain around it. 2028 01:56:28,001 --> 01:56:32,000 I really need to go off and actually come up with the more robust argument that 2029 01:56:32,000 --> 01:56:35,001 could actually be written down about using directionality as a trade 2030 01:56:35,001 --> 01:56:37,000 off for spread spectrum processing gain. 2031 01:56:37,001 --> 01:56:43,001 And maybe it's not 1 to 1. Maybe 12 dB of directional gain total only gives you 2032 01:56:43,001 --> 01:56:47,001 about the ability to throw away, to reduce your spread spectrum 2033 01:56:47,001 --> 01:56:49,000 processing gain by maybe 10 or 8 dB. 2034 01:56:50,000 --> 01:56:51,001 But it's certainly still worth it. 2035 01:56:52,000 --> 01:56:55,000 There's all these sorts of real networking issues. And actually I was in graduate 2036 01:56:55,000 --> 01:56:58,001 school in a networking research group, not a radio research group. 2037 01:56:59,000 --> 01:57:00,001 And so actually I went off and tackled the 2038 01:57:00,001 --> 01:57:02,000 problems that I thought were hard first. 2039 01:57:02,001 --> 01:57:05,001 And I was on the radio stuff and the scalable radio system. 2040 01:57:06,000 --> 01:57:10,000 But there's all sorts of hard networking problems about a completely ad hoc 2041 01:57:10,000 --> 01:57:15,001 network about how to actually, how does the station get a name like by name I 2042 01:57:15,001 --> 01:57:17,000 need a unique ID, a pile of bets. 2043 01:57:18,000 --> 01:57:21,000 And then how do you do routing across this system? 2044 01:57:21,000 --> 01:57:24,000 How do you actually compute the routes? I mean you want something that produces 2045 01:57:24,000 --> 01:57:26,000 something close to minimum energy routing. 2046 01:57:26,001 --> 01:57:28,001 But how do you actually compute the routes and how do you find the 2047 01:57:28,001 --> 01:57:30,000 path, how do you find which way to swing. 2048 01:57:31,000 --> 01:57:34,000 And then if somebody, if people in the metropolitan area are offering services 2049 01:57:34,000 --> 01:57:36,001 available, how do they advertise those? 2050 01:57:37,000 --> 01:57:41,001 How do they even publicize or spread the information that, hey, I'm not only just 2051 01:57:41,001 --> 01:57:45,000 going to address here, but if you actually contact me I can provide some service. 2052 01:57:46,001 --> 01:57:49,000 And maybe the service you want to get is an access to the Internet. 2053 01:57:49,001 --> 01:57:53,001 Maybe across this system somebody's offering a service which is global worldwide 2054 01:57:53,001 --> 01:57:57,000 Internet connectivity where they'll hand you an address which is globally 2055 01:57:57,000 --> 01:57:59,001 routable, maybe through some protocol and now you can route. 2056 01:58:00,001 --> 01:58:03,001 Now IPv6 by the way is going to be all automatic address configuration, 2057 01:58:03,001 --> 01:58:05,001 even all the way down through the tree and the routers. 2058 01:58:06,000 --> 01:58:10,000 And so I imagine there'll be a global Internet with IPv6 and that sort of thing. 2059 01:58:11,000 --> 01:58:14,000 How to fund further research and development? I don't know. 2060 01:58:15,000 --> 01:58:16,001 I'm burning my savings account at the moment. 2061 01:58:17,001 --> 01:58:20,000 And then how can this be brought to the market? One of these things, this thing 2062 01:58:20,000 --> 01:58:22,001 would be really cool if everybody had one, but how do you sell the first 2063 01:58:22,001 --> 01:58:24,000 hundred in the metropolitan area? 2064 01:58:24,001 --> 01:58:26,001 Maybe you have to give them away. Is that enough? 2065 01:58:27,000 --> 01:58:28,001 Is it interesting enough? I don't know. 2066 01:58:30,000 --> 01:58:35,001 Now the political talk, actually this is a historical talk. What I think is going 2067 01:58:35,001 --> 01:58:40,001 on here, imagine in 1975, think about the computer industry, the computer 2068 01:58:40,001 --> 01:58:45,000 industry, I think from about early 1960s, certainly at IBM when they started 2069 01:58:45,000 --> 01:58:49,001 doing the plans for the IBM 360, they understood that, hey, we're creating 2070 01:58:49,001 --> 01:58:51,000 a computer revolution, isn't this great? 2071 01:58:52,000 --> 01:58:56,000 And the world of the future is the world after we're going to have a 2072 01:58:56,000 --> 01:58:58,000 computer and information processing revolution. 2073 01:58:58,001 --> 01:59:01,001 And everybody's going to be using computers. But if you look at all the research 2074 01:59:01,001 --> 01:59:06,000 work and all the development work in the late 60s, the vision was that everybody 2075 01:59:06,000 --> 01:59:08,001 in the future is going to be using computers. And computers are big things that 2076 01:59:08,001 --> 01:59:11,000 fill machine rooms that need air conditioning and use lots of power and need 2077 01:59:11,000 --> 01:59:12,001 tending and people got to mount tapes and everything. 2078 01:59:13,000 --> 01:59:16,000 And so computers are going to be centralized things. And then what they were 2079 01:59:16,000 --> 01:59:18,000 going to do is they were going to figure out how to make computers reliable 2080 01:59:18,000 --> 01:59:22,000 enough and run time sharing on them and offer computers as a utility 2081 01:59:22,000 --> 01:59:24,000 and you'd have your computer jack in the wall. 2082 01:59:26,001 --> 01:59:30,000 And the computer industry was a blooming industry. There were companies that were 2083 01:59:30,000 --> 01:59:34,001 manufacturing computers and selling computers, sort of as equipment providers, 2084 01:59:34,001 --> 01:59:40,000 and there were the companies that bought computers and sold time on them for 2085 01:59:40,000 --> 01:59:42,001 people to come and run their payroll, for people to come and do their scientific 2086 01:59:42,001 --> 01:59:45,000 calculations. And the big companies, well, they could 2087 01:59:45,000 --> 01:59:46,001 afford to finance it internally themselves. 2088 01:59:46,001 --> 01:59:50,001 But for the vision of the future, at least, is how everybody's going to be able 2089 01:59:50,001 --> 01:59:54,000 to get affordable computing is that it was going to be offered 2090 01:59:54,000 --> 01:59:55,001 as a service that you paid for. 2091 01:59:56,000 --> 01:59:59,000 You had a monthly bill. It was going to be your computer 2092 01:59:59,000 --> 02:00:00,001 bill. It was going to be utility on the wall. 2093 02:00:02,000 --> 02:00:05,001 It's really neat to read all the visionary papers from the 60s because the future 2094 02:00:05,001 --> 02:00:09,001 is a world where everybody has access to a computer, but it's off somewhere else. 2095 02:00:10,001 --> 02:00:17,000 And what happened is, in 1975, people started proposing that maybe, actually, 2096 02:00:18,000 --> 02:00:21,001 you build your computer or you go to the store and you buy your computer, you 2097 02:00:21,001 --> 02:00:26,001 write a check for it, or actually these days it's plastic money, but you take 2098 02:00:26,001 --> 02:00:28,000 the computer home. You can afford it. 2099 02:00:29,000 --> 02:00:34,001 And you carry it home and use it. And, of course, in 1975, that's a ridiculous 2100 02:00:34,001 --> 02:00:37,001 idea. You can't afford a real computer. 2101 02:00:38,000 --> 02:00:41,000 A computer is just a toy. You can't do anything useful on it. In 2102 02:00:41,000 --> 02:00:42,001 fact, they were just toys at the beginning. 2103 02:00:42,001 --> 02:00:47,001 But, actually, there's a wonderful book by Clayton Christensen called The 2104 02:00:47,001 --> 02:00:54,001 Innovator's Dilemma, and he talks about how disruptive technology 2105 02:00:54,001 --> 02:01:00,000 displaces established industries, like sort 2106 02:01:00,000 --> 02:01:02,000 of stealth coming from below. 2107 02:01:02,000 --> 02:01:03,001 And the PC was like this. 2108 02:01:06,000 --> 02:01:09,001 And, anyway, so here's my sort of grand statement. It's like 2109 02:01:09,001 --> 02:01:11,001 you could own your own telecommunications network. 2110 02:01:12,000 --> 02:01:16,000 My vision is that the box that goes on the house is something that you 2111 02:01:16,000 --> 02:01:18,001 go to the store and you buy one. 2112 02:01:18,001 --> 02:01:20,001 You take it home when you put it in your house, and there's no monthly bill. 2113 02:01:21,000 --> 02:01:22,001 Well, there's no monthly bill for long distance. 2114 02:01:23,000 --> 02:01:24,001 There's no monthly bill for the metropolitan area. 2115 02:01:25,000 --> 02:01:27,001 And the way to think about that is that 2116 02:01:27,001 --> 02:01:31,000 what is, you know, your bill for the long distance. 2117 02:01:31,000 --> 02:01:35,000 Most of what, even what you pay for a long distance call today goes to the phone 2118 02:01:35,000 --> 02:01:37,001 company on your end and the phone company at the far end. 2119 02:01:38,000 --> 02:01:40,001 And if you're paying nine cents a minute, it's like four cents a minute to the 2120 02:01:40,001 --> 02:01:42,000 far end, four cents a minute to your end. 2121 02:01:42,001 --> 02:01:46,000 And the long distance company gets to keep about a penny per minute to pay for 2122 02:01:46,000 --> 02:01:50,001 its infrastructure investment and all of its operating costs and profits. 2123 02:01:51,001 --> 02:01:55,001 Long distance is actually very cheap, except that they have to find a way to get 2124 02:01:55,001 --> 02:01:57,001 to you, the access. 2125 02:01:57,001 --> 02:01:59,001 Some people say the last model problem. It's 2126 02:01:59,001 --> 02:02:01,000 really the metropolitan area problem. 2127 02:02:02,000 --> 02:02:06,001 And I think that the right way to do this is to, you know, own most of all your 2128 02:02:06,001 --> 02:02:11,000 telecommunications and perhaps global worldwide internet connectivity for sort of 2129 02:02:11,000 --> 02:02:12,001 big packet data sort of stuff. 2130 02:02:12,001 --> 02:02:17,000 Maybe you can pay 60 bucks per year flat rate for sort of unlimited service that 2131 02:02:17,000 --> 02:02:19,000 you can get across one of these things. 2132 02:02:19,001 --> 02:02:23,000 And maybe long distance calls, because you actually care about the delay, maybe 2133 02:02:23,000 --> 02:02:26,001 that's something that would require that you actually pay on a per call basis, 2134 02:02:26,001 --> 02:02:29,001 that we could get the, you know, we could get the, maybe we could get the long 2135 02:02:29,001 --> 02:02:32,000 distance rates down to maybe one or two cents a minute. 2136 02:02:32,000 --> 02:02:35,001 If the access on both ends was across a network like this. 2137 02:02:36,000 --> 02:02:37,000 [...] 2138 02:02:38,001 --> 02:02:42,000 What? ...how they care about the long distance companies plugging into... 2139 02:02:42,000 --> 02:02:43,000 This system? 2140 02:02:43,001 --> 02:02:47,000 Oh, there's a huge political problem there, but fortunately, it's only a small 2141 02:02:47,000 --> 02:02:49,001 fraction of the world's population that lives under 2142 02:02:49,001 --> 02:02:52,000 phone companies that are regulated by the FCC. 2143 02:02:54,001 --> 02:02:57,001 It's only, it's the five billion population in the world, and there's only about 2144 02:02:57,001 --> 02:03:00,000 a little over a quarter billion in the US. 2145 02:03:00,001 --> 02:03:01,001 So there's a factor of 20. 2146 02:03:01,001 --> 02:03:04,001 So about, what's the five percent of the world's population is in the US. 2147 02:03:06,000 --> 02:03:06,001 So... 2148 02:03:07,001 --> 02:03:11,000 So even just in the US, this sort of idea of monthly bills versus no monthly 2149 02:03:11,000 --> 02:03:14,001 bills, one of the things that a lot of people are talking about today, there's a 2150 02:03:14,001 --> 02:03:16,000 great feeling by a lot of people that we are 2151 02:03:16,000 --> 02:03:18,000 upon a telecommunications revolution. 2152 02:03:18,000 --> 02:03:20,000 The internet has just happened in a big way, 2153 02:03:20,001 --> 02:03:22,000 and there's all this, you know, mobile stuff. 2154 02:03:22,000 --> 02:03:23,001 What I've talked about is a fixed network. 2155 02:03:24,000 --> 02:03:27,001 I don't fully understand mobility yet and what should be done about that. 2156 02:03:28,000 --> 02:03:29,001 Deploy this... 2157 02:03:29,001 --> 02:03:30,001 Just changing the subject for a moment. 2158 02:03:30,001 --> 02:03:35,001 A fixed network like this sure would be a neat base from which maybe all these 2159 02:03:35,001 --> 02:03:39,001 boxes also have a little micro cell thing from which you can then get in on some 2160 02:03:39,001 --> 02:03:42,001 other partition device up to one of these to go across town. 2161 02:03:44,000 --> 02:03:44,001 But anyway... 2162 02:03:45,001 --> 02:03:48,000 I've run around and said, no monthly bills, no monthly bills. 2163 02:03:48,001 --> 02:03:51,001 Actually, David Hughes is running around and saying, free communication. 2164 02:03:52,001 --> 02:03:54,000 You know, this part 15 devices have it. 2165 02:03:54,001 --> 02:03:55,001 Actually, free is not the right word. 2166 02:03:55,001 --> 02:03:56,001 It's user financed. 2167 02:03:57,000 --> 02:04:02,000 The user paid for it all up front, just like the PC is not free computing. 2168 02:04:02,001 --> 02:04:07,000 It is free computing compared to maybe the point of view of a computer utility. 2169 02:04:07,000 --> 02:04:09,000 But you paid for it all up front. 2170 02:04:09,000 --> 02:04:10,000 It's user... 2171 02:04:10,001 --> 02:04:12,000 Yeah, it's user financed. 2172 02:04:12,001 --> 02:04:13,001 I guess you do have to pay the power bill. 2173 02:04:13,001 --> 02:04:18,000 Maybe you can pedal your bicycle or solar panels, as we heard about last night. 2174 02:04:18,001 --> 02:04:21,000 But I actually think this version of, you know, for 2175 02:04:21,000 --> 02:04:24,000 all of us, you know, for society... 2176 02:04:24,000 --> 02:04:26,000 I don't know, I'm rambling on here. 2177 02:04:26,001 --> 02:04:30,000 But I think the idea of no monthly bills is a very important one because 2178 02:04:30,000 --> 02:04:32,001 telephone penetration in the United States is somewhere 2179 02:04:32,001 --> 02:04:34,000 between 90 and 95 percent. 2180 02:04:34,001 --> 02:04:36,001 And the people who study this thing get into big arguments about whether 2181 02:04:36,001 --> 02:04:38,000 it's 90 or 95 percent. 2182 02:04:39,001 --> 02:04:40,000 It's stunningly low. 2183 02:04:40,000 --> 02:04:41,000 I thought I'd already had a phone. 2184 02:04:41,001 --> 02:04:44,001 But actually, quite a few, you know, maybe one in 20 or one in 10 households 2185 02:04:44,001 --> 02:04:46,000 in the U.S. do not have a working telephone. 2186 02:04:48,000 --> 02:04:49,000 And what's the problem? 2187 02:04:49,001 --> 02:04:54,000 Well, the standard mantra among those who worry about this problem is 2188 02:04:54,000 --> 02:04:55,001 that it's the problem of affordability. 2189 02:04:56,001 --> 02:04:57,001 But it's not. 2190 02:04:57,001 --> 02:04:59,000 It's not the affordability. 2191 02:04:59,001 --> 02:05:02,000 It's that in order to have a telephone, you have to have good credit. 2192 02:05:03,000 --> 02:05:04,000 Because a phone, you can run up a bill. 2193 02:05:04,000 --> 02:05:06,001 Or if you fail to pay, you know, before they go in trouble putting in 2194 02:05:06,001 --> 02:05:08,001 service, then they'll actually want to know they're going to get their money. 2195 02:05:08,001 --> 02:05:14,000 So it's actually easier to afford for end users, for those who aren't terribly 2196 02:05:14,000 --> 02:05:19,000 wealthy or not the most wealthy in society, it's easier for them to figure out 2197 02:05:19,000 --> 02:05:23,001 how to save up their money and pay to buy the PC or buy the television than it is 2198 02:05:23,001 --> 02:05:28,000 to figure out how for them to reliably enough pay a monthly bill for a service. 2199 02:05:28,001 --> 02:05:33,000 And so this sort of system, instead of the cross subsidy thing, which is what 2200 02:05:33,000 --> 02:05:38,000 we've got now with the whole telephone, you can still get a phone light, you 2201 02:05:38,000 --> 02:05:40,001 know, in some states you can still, you know, if you 2202 02:05:40,001 --> 02:05:42,001 qualify for certain federal assistance. 2203 02:05:43,000 --> 02:05:48,000 I think this is actually a better way to provide communication to everybody. 2204 02:05:48,001 --> 02:05:51,001 In fact, you know, I think back in the 70s there were probably people who 2205 02:05:51,001 --> 02:05:53,000 had CB radios who didn't have telephones. 2206 02:05:54,000 --> 02:05:55,001 And we have a question here. 2207 02:05:55,001 --> 02:05:57,000 That's television penetration. 2208 02:05:58,001 --> 02:06:02,000 Yeah, more people have, that was the second point on my slide. 2209 02:06:02,000 --> 02:06:07,000 Apparently, television penetration in the United States is like 99.5 or 99.8 2210 02:06:07,000 --> 02:06:09,001 percent of households have a television, working television. 2211 02:06:10,001 --> 02:06:13,000 So, and there's no monthly bill associated with a television. 2212 02:06:14,000 --> 02:06:15,000 You just go to the store and you 2213 02:06:15,000 --> 02:06:16,001 buy it. Well, you know, they're paying for it with that. 2214 02:06:17,000 --> 02:06:20,001 They're paying for the, yeah, that's true. Now England is different. 2215 02:06:21,000 --> 02:06:26,001 So, what about spectrum? Actually, I believe 59 to 64 gigahertz is 2216 02:06:26,001 --> 02:06:28,001 already sort of open. 2217 02:06:28,001 --> 02:06:31,001 And maybe this whole system could be built there. The problem there is you get a 2218 02:06:31,001 --> 02:06:35,001 15 dB per kilometer attenuation of a free space loss because of an oxygen. 2219 02:06:35,001 --> 02:06:41,000 There's a quantum resonance. That would be an advantage except it reduces the 2220 02:06:41,000 --> 02:06:43,001 maximum range of when you start with two stations. 2221 02:06:43,001 --> 02:06:46,001 And so, actually, I don't think it, it might not be the right place to start. 2222 02:06:47,000 --> 02:06:49,000 And I'm still thinking about all this. 2223 02:06:49,000 --> 02:06:55,001 But what, this, the idea that the maximum utility is extracted from spectrum 2224 02:06:55,001 --> 02:06:58,001 when everybody is sort of experiencing maximum interference 2225 02:06:58,001 --> 02:07:02,000 kind of taught me something. 2226 02:07:03,000 --> 02:07:07,001 And I think the FCC, you know, the micromanagement of the spectrum, which is more 2227 02:07:07,001 --> 02:07:12,000 or less what the FCC has been doing for most of the century, they think they 2228 02:07:12,000 --> 02:07:16,000 started in the 1920s, was the right public policy given that the radio technology 2229 02:07:16,000 --> 02:07:21,000 we had at the time was stuff that was linear modulation 2230 02:07:21,000 --> 02:07:22,001 and linear detection basically. 2231 02:07:22,001 --> 02:07:25,000 It's AM, linear modulation, even single side band. 2232 02:07:26,001 --> 02:07:30,001 But now that we have computers, and, you know, there's, there's more law, more is 2233 02:07:30,001 --> 02:07:32,001 law thing, where every 18 months for the same money you 2234 02:07:32,001 --> 02:07:34,000 can buy something that's twice as fast. 2235 02:07:34,000 --> 02:07:38,000 You know, we wait maybe 15 more years and the computer's gonna be a thousand 2236 02:07:38,000 --> 02:07:41,000 times faster. And that's just a computer. 2237 02:07:41,000 --> 02:07:44,001 Well, even with custom VLSI, the amount of processing is gonna be able to do to 2238 02:07:44,001 --> 02:07:48,001 go from wide, to take wide band signals and like figure out, you 2239 02:07:48,001 --> 02:07:50,000 know, who's trying to send you what in them. 2240 02:07:51,001 --> 02:07:57,000 Makes me think that for the future, where we should be headed for public policy 2241 02:07:57,000 --> 02:07:59,001 for spectrum allocation is deregulation. 2242 02:07:59,001 --> 02:08:06,000 And what I mean by that is, basically remove rules so that you can transmit 2243 02:08:06,000 --> 02:08:09,000 whatever you want, whenever you want, more or less without any 2244 02:08:09,000 --> 02:08:10,001 rules. And maybe we need some power caps. 2245 02:08:11,001 --> 02:08:14,001 That goes against your power control because... 2246 02:08:15,001 --> 02:08:18,001 Actually, I mean, I think you build power control in the 2247 02:08:18,001 --> 02:08:20,001 system. Yeah, there's a problem there. 2248 02:08:20,001 --> 02:08:22,000 And I was like, they still would have to cooperate. 2249 02:08:23,001 --> 02:08:27,000 No, you could just go to another band. There's a lot of 2 GHz wide 2250 02:08:27,000 --> 02:08:28,001 bands between 0 and 100 GHz. 2251 02:08:29,001 --> 02:08:30,001 So I actually think... 2252 02:08:31,000 --> 02:08:34,000 It's regulated so your neighbor could be occupying 17 of them. 2253 02:08:35,000 --> 02:08:41,001 But then there's 93, you know, 83 other GHz wide spectrum. And I think perhaps 2254 02:08:41,001 --> 02:08:46,001 maybe it only makes sense to deregulate the spectrum above maybe a GHz. Maybe. 2255 02:08:48,001 --> 02:08:53,000 But actually, I don't know. I have a suggested target rate for... Why say 2256 02:08:53,000 --> 02:08:57,001 deregulate? I mean, basically get rid of any federal licensing or 2257 02:08:57,001 --> 02:08:59,001 type acceptance rules for regulation. 2258 02:09:00,001 --> 02:09:03,001 And, you know, every time you double the frequency, you get sort of different 2259 02:09:03,001 --> 02:09:06,001 propagation characteristics. So different pieces of the spectrum are useful for 2260 02:09:06,001 --> 02:09:10,000 different things. Even above a GHz, you get different properties. 2261 02:09:10,001 --> 02:09:13,000 And so you might want to build a system here or you might want to build a system 2262 02:09:13,000 --> 02:09:15,000 there. But I think the sort of... 2263 02:09:16,000 --> 02:09:19,001 You know, where the technology sort of could take over and we wouldn't need rules 2264 02:09:19,001 --> 02:09:24,000 anymore for the spectrum is that we could do 2% in each octave each year 2265 02:09:24,000 --> 02:09:26,000 beginning in the year 2000, which would nearly 2266 02:09:26,000 --> 02:09:28,000 complete deregulation by the year 2050. 2267 02:09:28,001 --> 02:09:33,000 That's, I think, my intuition sort of says would be sort of the right rate at 2268 02:09:33,000 --> 02:09:35,000 which to deregulate for public policy reasons. 2269 02:09:35,000 --> 02:09:39,000 Now, what about amateur radio? I still want to be able to do sideband and 2270 02:09:39,000 --> 02:09:40,001 see if I can, you know, hear that guy in New 2271 02:09:40,001 --> 02:09:43,000 Zealand who's only transmitting with 5 watts. 2272 02:09:43,001 --> 02:09:48,000 Well, that's shortwave. I've already said that. But actually, I think it might 2273 02:09:48,000 --> 02:09:55,000 make sense to keep some handband kind of things around and call them the public 2274 02:09:55,000 --> 02:09:57,000 parts of the spectrum. 2275 02:09:57,000 --> 02:10:01,001 The place where you can actually go play with what we think of as weak signal or 2276 02:10:01,001 --> 02:10:06,001 linear modulation techniques. Because there's an important educational aspect to 2277 02:10:06,001 --> 02:10:09,001 actually, you know, transmitting and playing with the receiver and being able to 2278 02:10:09,001 --> 02:10:12,000 run around with it and doing things like I was doing, which was Fox-Honing. 2279 02:10:13,000 --> 02:10:18,000 You could Fox-Honed in a spread spectrum world as well. But I don't think I ever 2280 02:10:18,000 --> 02:10:20,001 would have done this thesis if I wasn't actually running around playing with 2281 02:10:20,001 --> 02:10:24,000 radios for fun because I learned a lot there. 2282 02:10:24,000 --> 02:10:28,000 And I think it'd be nice to have some spectrum to play with for learning 2283 02:10:28,000 --> 02:10:31,000 purposes. You can learn with wideband systems as 2284 02:10:31,000 --> 02:10:32,001 well, even with everybody else out there. 2285 02:10:32,001 --> 02:10:35,001 But there's something nice about actually being able to turn a receiver on and 2286 02:10:35,001 --> 02:10:38,000 hear the thermal noise floor. And it'd be nice 2287 02:10:38,000 --> 02:10:39,001 if there were some places in the spectrum. 2288 02:10:40,000 --> 02:10:43,001 Now, the other places in the spectrum which we can never deregulate are the radio 2289 02:10:43,001 --> 02:10:47,001 astronomy people. If they want to continue to do earth-based radio astronomy or 2290 02:10:47,001 --> 02:10:49,001 they could go build a base on the far side of the moon. 2291 02:10:50,001 --> 02:10:55,000 But now I'm getting really wacko and that's really all I had to say today. And I 2292 02:10:55,000 --> 02:10:57,000 can't... 2293 02:10:57,000 --> 02:10:57,001 Thank you. 2294 02:11:01,000 --> 02:11:03,001 And while I talked longer than I thought I was going to. 2295 02:11:11,001 --> 02:11:13,001 Build a base on the far side of the moon? Yeah. 2296 02:11:15,001 --> 02:11:17,001 So thank you, Greg, for inviting me to do this. 2297 02:11:18,000 --> 02:11:18,001 Thank you.